近期在开发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进行正常的打包错误了。