近期在開發Java的時候遇到了如下的打包上的問題
- 需要將一個工程下面的子工程分別打包
- 有的子工程還包含了另一個子工程
在這種情況下打包會出現找不到子模塊的情況。
環境
JDK:1.8
開發工具:Idea 2021.1.3
解決方案
需要調整父級項目,子集項目的pom.xml文件
具體調整如下
父級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>
<groupId>com.demo.test</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myproject</name>
<description>Demo project for Spring Boot</description>
<packaging>pom</packaging>
........
<!--聲明你擁有的子項目 -->
<modules>
<module>children1</module>
<module>children2</module>
<module>children3</module>
</modules>
......
<build>
<plugins>
......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<skipTests>true</skipTests> <!--默認關掉單元測試(可以添加) -->
</configuration>
</plugin>
</plugins>
</build>
</project>
子項目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">
......
<!--聲明父模塊-->
<parent>
<groupId>com.demo.test</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
......
<!--被引用的子模塊-->
<dependency>
<groupId>com.demo.tools</groupId>
<artifactId>mytools</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
......
</project>
經過上述配置后,就可以使用Idea下的Maven進行正常的打包錯誤了。