使用idea 创建 SpringBoot 和Maven 主子模块项目工程

113 阅读1分钟
<!--    1.搭建主子模块的SpringBoot 工程-->
<!--   创建父工程 pom类 管理依赖版本和公共依赖  使用Spring boot 创建-->
<!--   创建子模块 开发各种模块功能              使用Maven 创建-->

1、

1.png

2、

2.png

3、

3.png

4、

4.png

父模块中的  pom.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <modules>
      <module>service</module>
   </modules>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.5.6</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.schoolWeb</groupId>
   <artifactId>school_parent</artifactId>
    <packaging>pom</packaging>
   <version>0.0.1-SNAPSHOT</version>
   <name>school</name>
   <description>school</description>

<!--   1.搭建主子模块的SpringBoot 工程-->
<!--   创建父工程 pom类 管理依赖版本和公共依赖  使用Spring boot 创建-->
<!--   创建子模块 开发各种模块功能              使用Maven 创建-->

<!--   把项目中所用的依赖 导入进来 -->
   <properties>
      <java.version>1.8</java.version>
      <guli.version>0.0.1-SNAPSHOT</guli.version>
      <mybatis-plus.version>3.0.5</mybatis-plus.version>
      <velocity.version>2.0</velocity.version>
      <swagger.version>2.7.0</swagger.version>
      <aliyun.oss.version>2.8.3</aliyun.oss.version>
      <jodatime.version>2.10.1</jodatime.version>
      <poi.version>3.17</poi.version>
      <commons-fileupload.version>1.3.1</commons-fileupload.version>
      <commons-io.version>2.6</commons-io.version>
      <httpclient.version>4.5.1</httpclient.version>
      <jwt.version>0.7.0</jwt.version>
      <aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
      <aliyun-sdk-oss.version>3.1.0</aliyun-sdk-oss.version>
      <aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
      <aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.version>
      <aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
      <fastjson.version>1.2.28</fastjson.version>
      <gson.version>2.8.2</gson.version>
      <json.version>20170516</json.version>
      <commons-dbutils.version>1.7</commons-dbutils.version>
      <canal.client.version>1.1.0</canal.client.version>
      <docker.image.prefix>zx</docker.image.prefix>
      <cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>
   </properties>

<!--   锁定依赖版本-->
   <dependencyManagement>
      <dependencies>
         <!--Spring Cloud-->
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>

         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${cloud-alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <!--mybatis-plus 持久层-->
         <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatis-plus.version}</version>
         </dependency>

         <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
         <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>${velocity.version}</version>
         </dependency>

         <!--swagger-->
         <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
         </dependency>
         <!--swagger ui-->
         <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
         </dependency>

         <!--aliyunOSS-->
         <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>${aliyun.oss.version}</version>
         </dependency>

         <!--日期时间工具-->
         <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${jodatime.version}</version>
         </dependency>

         <!--xls-->
         <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
         </dependency>
         <!--xlsx-->
         <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
         </dependency>

         <!--文件上传-->
         <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
         </dependency>

         <!--commons-io-->
         <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
         </dependency>

         <!--httpclient-->
         <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpclient.version}</version>
         </dependency>

         <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
         </dependency>

         <!-- JWT -->
         <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>${jwt.version}</version>
         </dependency>

         <!--aliyun-->
         <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>${aliyun-java-sdk-core.version}</version>
         </dependency>
         <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>${aliyun-sdk-oss.version}</version>
         </dependency>
         <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-vod</artifactId>
            <version>${aliyun-java-sdk-vod.version}</version>
         </dependency>
         <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-vod-upload</artifactId>
            <version>${aliyun-java-vod-upload.version}</version>
         </dependency>
         <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-sdk-vod-upload</artifactId>
            <version>${aliyun-sdk-vod-upload.version}</version>
         </dependency>
         <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
         </dependency>
         <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>${json.version}</version>
         </dependency>

         <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>${commons-dbutils.version}</version>
         </dependency>

         <dependency>
            <groupId>com.alibaba.otter</groupId>
            <artifactId>canal.client</artifactId>
            <version>${canal.client.version}</version>
         </dependency>
      </dependencies>
   </dependencyManagement>


   <!--   这一段可以注释掉 到时候放在子模块中 父工程 管理依赖版本和公共依赖-->
   <!--   <dependencies>-->
<!--      <dependency>-->
<!--         <groupId>org.springframework.boot</groupId>-->
<!--         <artifactId>spring-boot-starter</artifactId>-->
<!--      </dependency>-->

<!--      <dependency>-->
<!--         <groupId>org.springframework.boot</groupId>-->
<!--         <artifactId>spring-boot-starter-test</artifactId>-->
<!--         <scope>test</scope>-->
<!--      </dependency>-->
<!--   </dependencies>-->

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.5.6</version>
         </plugin>
      </plugins>
   </build>

</project>

6、

5.png

7、

6.png

子模块的 pom.xml 文件 内容

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>school_parent</artifactId>
        <groupId>com.schoolWeb</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>edu_service</module>
    </modules>

    <!--    使用依赖 在父模块定义了依赖版本  -->
    <dependencies>

        <dependency>
            <groupId>com.schoolWeb</groupId>
            <artifactId>school_parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>


<!--        目前用不上-->
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>-->

        <!--hystrix依赖,主要是用  @HystrixCommand -->
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>-->

        <!--服务注册-->
        <!-- <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
         </dependency>-->
        <!--服务调用-->
        <!-- <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>

        <!--lombok用来简化实体类:需要安装lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--xls-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>

        <!--httpclient-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <!--commons-io-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <!--gson-->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

8、

7.png