3.springboot多模組打包
阿新 • • 發佈:2020-09-09
1.各個模組pom檔案對應的打包方式:
petrochina(父工程):<packaging>pom</packaging>
petrochina-admin(子工程):<packaging>jar</packaging>
petrochina-common(子工程):<packaging>jar</packaging>
petrochina-framework(子工程):<packaging>jar</packaging>
petrochina-generator(子工程):<packaging>jar</packaging>petrochina-quartz(子工程):<packaging>jar</packaging>
petrochina-system(子工程):<packaging>jar</packaging>
2.父工程(petrochina)pom.xml檔案中的打包外掛
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> </plugins> </build>
3.子工程
1)petrochina-admin(帶有啟動類的子工程)
在該模組的pom.xml檔案中:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version><configuration>
<fork>true</fork> <!-- 如果沒有該配置,devtools不會生效 -->
<!-- 指定該Main Class為全域性的唯一入口,啟動類的全限定類名 -->
<mainClass>com.petrochina.PetrochinaApplication</mainClass>
<layout>ZIP</layout>
<!-- 打包的時候,因為該模組有第三方jar包,所以添加了下面的一條語句 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<dependencies>
<!-- spring熱部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
</build>
-----------說明---------------
因為該模組(petrochina-admin)需要引入第三方jar包
引入的方式3步:
1.在該模組下,src/main/resources/目錄下新建一個lib目錄,把第三方jar拷貝進去
2.在<dependencies></dependencies>標籤中新增
<dependency>
<groupId>gun.io</groupId>
<artifactId>RXTXcomm</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/RXTXcomm.jar</systemPath>
</dependency>
理論上<groupId>、<artifactId>、<version>中的內容可以隨便寫,但是應該根據jar包來
3.在該模組的pom.xml中新增一條語句,即上面用紅色標註的語句<includeSystemScope>true</includeSystemScope>
2)其他子工程都一樣,打包方式為<package>jar</package>
4.開始打包
-------------------注意---------
在打包的過程中可能會出現以下問題:
問題:有時在打包的時候會出現提示jar包下載不下來,即jar包從遠端倉庫下載失敗
原因:證書問題
解決:
1.下載證書(自行百度)
2.臨時解決
新增:-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
位置: