Browse Source

0922 maven

Qing 8 months ago
parent
commit
dd6c3cf137

+ 1 - 0
lesson/lesson.iml

@@ -7,5 +7,6 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="gson-2.11.0" level="project" />
   </component>
 </module>

BIN
lesson/lib/gson-2.11.0.jar


+ 13 - 0
lesson/src/com/sf/javase/Main.java

@@ -0,0 +1,13 @@
+package com.sf.javase;
+
+public class Main {
+
+    // 听从 高薪
+    // c 简单 没咋学
+    // c++ 面向对象
+    // java 跨平台
+    // 知识 javaSE + mysql + javaEE(Web) + Spring一系列框架
+    // 数据结构和算法
+    // 八股
+
+}

+ 15 - 0
lesson/src/com/sf/javase/Test.java

@@ -0,0 +1,15 @@
+// 代表当前类的位置
+package com.sf.javase;
+
+// 公开的类 叫做Test
+public class Test {
+
+    // 程序入口也是main函数
+    // 公开的 + 静态的 + 空 + 函数名 + ( 参数 ) 参数类型是字符串 []代表数组 args参数名
+    public static void main(String[] args){
+        // 打印hello world
+        // 系统级的输出 到println是方法 () 方法的入参是字符串 使用""
+        // 一行结束之后 使用分号
+        System.out.println("hello world");
+    }
+}

+ 21 - 0
lesson/src/com/sf/json/Main.java

@@ -0,0 +1,21 @@
+package com.sf.json;
+
+import com.google.gson.Gson;
+
+public class Main {
+
+    public static void main(String[] args) {
+        Person person = new Person("zhangsan", 18);
+        // 使用gson包提供的 Gson类创建对象
+        Gson gson = new Gson();
+        // 提供了toJson方法 可以将对象转为json
+        String str = gson.toJson(person);
+        // {"name":"zhangsan","age":18}
+        System.out.println(str);
+
+        // 怎么将字符串再转为对象 使用fromJson
+        // 参数对应的是 json字符串 对象对应的类型
+        Person person1 = gson.fromJson(str, Person.class);
+        System.out.println(person1);
+    }
+}

+ 40 - 0
lesson/src/com/sf/json/Person.java

@@ -0,0 +1,40 @@
+package com.sf.json;
+
+// JavaBean
+public class Person {
+    private String name;
+    private int age;
+
+    // ctrl + N 生成代码的快捷键
+    public Person() {
+    }
+
+    public Person(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Person{" +
+                "name='" + name + '\'' +
+                ", age=" + age +
+                '}';
+    }
+}

+ 38 - 0
maven-demo/.gitignore

@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store

+ 86 - 0
maven-demo/pom.xml

@@ -0,0 +1,86 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <!-- 在maven管理jar包时 是通过  groupId artifactId version-->
+    <!-- 在创建一个maven项目时 也需要定义三要素 是因为当前项目也可以打包成jar 提供给别的项目使用-->
+    <groupId>com.sf</groupId>
+    <artifactId>maven-demo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <!-- 打包方式 -->
+    <packaging>pom</packaging>
+
+    <!-- 对应到maven栏中的名字 -->
+    <name>maven-demo</name>
+    <!-- maven官方路径  apache是一个软件基金会 a patchy server 补丁服务-->
+    <!-- maven 是自动化构建工具-->
+    <!-- 构建: 是将工程编译得到的结果部署到服务器上的过程 -->
+    <url>http://maven.apache.org</url>
+
+    <!-- 在添加模块后 会在父项目的url下 增加模块列表 -->
+    <modules>
+        <!-- 具体模块名 -->
+        <module>sub-demo</module>
+        <module>sub1-demo</module>
+    </modules>
+
+    <!-- 配置 帮我们统一管理版本号 -->
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <spring.version>6.1.12</spring.version>
+    </properties>
+
+    <!--dependencies 意思是依赖列表 -->
+    <!--dependencyManagement 可以让父项目的依赖 不会被子项目自动引入 -->
+    <!-- 同时在子项目明确引入依赖时 可以复用这里的版本 -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <!-- 查看引入依赖的地址 以配置的maven仓库为起始地址 + groupId + artifactId + version + jar包名(artifactId + version) -->
+                <!-- /Users/Qing/.m2/repository/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar -->
+                <groupId>com.google.code.gson</groupId>
+                <artifactId>gson</artifactId>
+                <version>2.11.0</version>
+            </dependency>
+            <!-- 这里是可以存放多个依赖的 -->
+            <dependency>
+                <groupId>org.junit.jupiter</groupId>
+                <artifactId>junit-jupiter</artifactId>
+                <version>5.11.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-context</artifactId>
+                <!-- 使用$+大括号来指代变量 通过变量名找到变量值 -->
+                <version>${spring.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-aop</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+    <!-- 对编译进行配置 -->
+    <build>
+        <!-- 插件列表 -->
+        <plugins>
+            <!-- 单个插件的配置 -->
+            <plugin>
+                <!-- 也是通过三要素找到插件 -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.11.0</version>
+                <!-- 对插件的使用进行配置 -->
+                <configuration>
+                    <source>17</source>
+                    <target>17</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 45 - 0
maven-demo/sub-demo/pom.xml

@@ -0,0 +1,45 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <!-- 声明当前子项目的父项目 -->
+    <parent>
+        <groupId>com.sf</groupId>
+        <artifactId>maven-demo</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <!-- 这里的三要素只声明了artifactId 而groupId和version是复用父项目的 -->
+    <artifactId>sub-demo</artifactId>
+
+    <packaging>jar</packaging>
+
+    <name>sub-demo</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <!-- 此处并没有引入依赖 但仍然可以使用gson 是因为父项目引入了依赖 子项目也默认引入 -->
+    <dependencies>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <!-- 子项目在引入依赖时 可以复用父项目中 dependencyManagement标签下声明的版本 -->
+            <!-- 如果在引入一个依赖时 不想引入此依赖关联的其他依赖 可以使用exclusions 代表排除的列表-->
+            <exclusions>
+                <!-- 使用exclusion代表排除的具体一个依赖 此时只需要groupId + artifactId -->
+                <!-- 此时的groupId + artifactId 如果不存在 不会报错 只是未生效-->
+                <exclusion>
+                    <groupId>com.google.errorprone</groupId>
+                    <artifactId>error_prone_annotations</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 21 - 0
maven-demo/sub-demo/src/main/java/com/sf/Main.java

@@ -0,0 +1,21 @@
+package com.sf;
+
+import com.google.gson.Gson;
+
+public class Main {
+
+    public static void main(String[] args) {
+        Person person = new Person("zhangsan", 18);
+        // 使用gson包提供的 Gson类创建对象
+        Gson gson = new Gson();
+        // 提供了toJson方法 可以将对象转为json
+        String str = gson.toJson(person);
+        // {"name":"zhangsan","age":18}
+        System.out.println(str);
+
+        // 怎么将字符串再转为对象 使用fromJson
+        // 参数对应的是 json字符串 对象对应的类型
+        Person person1 = gson.fromJson(str, Person.class);
+        System.out.println(person1);
+    }
+}

+ 40 - 0
maven-demo/sub-demo/src/main/java/com/sf/Person.java

@@ -0,0 +1,40 @@
+package com.sf;
+
+// JavaBean
+public class Person {
+    private String name;
+    private int age;
+
+    // ctrl + N 生成代码的快捷键
+    public Person() {
+    }
+
+    public Person(String name, int age) {
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    @Override
+    public String toString() {
+        return "Person{" +
+        "name='" + name + '\'' +
+        ", age=" + age +
+        '}';
+    }
+}

+ 14 - 0
maven-demo/sub-demo/src/test/java/com/sf/TestPerson.java

@@ -0,0 +1,14 @@
+package com.sf;
+
+import org.junit.jupiter.api.Test;
+
+// 其实在maven项目中 main存放的是主文件 test存放的是测试文件
+// 对junit的使用 写在test文件夹中更规范
+public class TestPerson {
+
+    @Test
+    public void test() {
+        Person person = new Person("lisi",20);
+        System.out.println(person);
+    }
+}

+ 31 - 0
maven-demo/sub1-demo/pom.xml

@@ -0,0 +1,31 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.sf</groupId>
+        <artifactId>maven-demo</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>sub1-demo</artifactId>
+    <packaging>jar</packaging>
+
+    <name>sub1-demo</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aop</artifactId>
+        </dependency>
+    </dependencies>
+</project>