1. 程式人生 > >intelij idea建立spring boot聚合工程

intelij idea建立spring boot聚合工程

1、快速建立spring boot工程(父工程)。

(1.1) File -> New - > Project -> Spring Assistant-> 點選Next 。如圖選擇default,然後點選next。

(1.2)填寫專案相關資訊,如圖:

(1.3)下一步,選擇core下devtools(熱部署),如圖:

(1.4)選擇檔案位置:

(1.5)建立完之後刪除src目錄,並修改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">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-parent</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>

   <name>tianshuhao-parent</name>
   <description>tianshuhao-parent project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.0.6.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
      <fastjson.version>1.2.51</fastjson.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-dependencies</artifactId>
         <version>2.0.6.RELEASE</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
      <!--熱部署-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <scope>runtime</scope>
      </dependency>

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

   <build>
      <!-- 產生構件的檔名,預設${artifactId}-${version} -->
      <finalName>tianshuhao-parent</finalName>
      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
         </plugins>
      </pluginManagement>
      <plugins>
         <!-- 跳過測試 -->
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <skip>true</skip>
            </configuration>
         </plugin>
      </plugins>
   </build>
</project>

2、建立核心模組core,entity,dao,service,web。

(2.1)專案上右鍵單擊new-----Module:

(2.2)選擇core下的lombok(簡化程式碼,可省略getter/setter/toString等方法),選擇路徑,如圖:

(2.3)模仿core建立其他模組,entity,dao,service和web(其中web打包方式選擇war,最後一步專案依賴新增web),如圖:

(2.4)建立完後目錄結構如圖:

(2.5)刪除各個模組包下的無用類,只保留到包即可(web模組除外)。

3、父工程的pom.xml檔案新增<modules>標籤,如圖:

4、子模組新增父工程,entity,dao,service,web模組依賴core模組,dao新增entity模組......最後:

(4.1)core模組的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>
      <groupId>com.tianshuhao</groupId>
      <artifactId>tianshuhao-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-core</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>tianshuhao-core</name>
   <description>tianshuhao-core project for tianshuhao</description>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

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

      <!-- lombok -->
      <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <optional>true</optional>
      </dependency>
      <!--fastjson-->
      <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>${fastjson.version}</version>
      </dependency>

   </dependencies>

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

(4.2)entity模組的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>
      <groupId>com.tianshuhao</groupId>
      <artifactId>tianshuhao-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-entity</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>tianshuhao-entity</name>
   <description>tianshuhao-entity project for tianshuhao</description>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-core</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
   </dependencies>

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

(4.3)dao模組的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>
        <groupId>com.tianshuhao</groupId>
        <artifactId>tianshuhao-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-dao</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>tianshuhao-dao</name>
   <description>tianshuhao-dao project for tianshuhao</description>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-core</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-entity</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>

   </dependencies>

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

(4.4)service模組的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>
      <groupId>com.tianshuhao</groupId>
      <artifactId>tianshuhao-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-service</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>

   <name>tianshuhao-service</name>
   <description>tianshuhao-service project for tianshuhao</description>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-core</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-entity</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-dao</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-cache</artifactId>
      </dependency>

   </dependencies>

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

(4.5)web模組的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>
      <groupId>com.tianshuhao</groupId>
      <artifactId>tianshuhao-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.tianshuhao</groupId>
   <artifactId>tianshuhao-web</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>war</packaging>

   <name>tianshuhao-web</name>
   <description>tianshuhao-web project for tianshuhao</description>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-core</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-entity</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-dao</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>com.tianshuhao</groupId>
         <artifactId>tianshuhao-service</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
         <!--排除內建的tomcat-->
         <!--<exclusions>
            <exclusion>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
         </exclusions>-->
      </dependency>
      <!--<dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
         <scope>provided</scope>
      </dependency>-->
   </dependencies>

   <build>
      <!-- 產生構件的檔名,預設${artifactId}-${version} -->
      <finalName>tianshuhao-web</finalName>
   </build>
</project>

5、專案打包,調出maven projects視窗,如圖目錄執行run maven build:

6、控制檯顯示build success表示打包成功,如圖:

7、修改web模組的application.proterties為application.yml,並新增一下內容:

8、同級目錄(resources)下新增檔案application-dev.properties,內容為空即可。

9、web子模組的Application啟動類:

10、執行main方法,訪問地址:http://localhost:8080/tianshuhao-web/test