我在Eclipse中有两个Maven项目,都有自己的POM。
项目A创建一个JAR文件。
项目B创建一个WAR文件。
当我对项目B运行“package”命令时,我希望它还包装项目A,然后将生成的JAR文件复制到项目B中的任意位置。
我已经在maven-war-plugin中使用webResources值尝试(并成功)了副本,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<webResources>
<resource>
<directory>../ProjectA/target</directory>
<targetPath>.</targetPath>
<includes>
<include>ProjectA*.jar</include>
</includes>
<excludes>
<exclude>*shaded*.jar</exclude>
</excludes>
</resource>
</webResources>
但是如何让项目B的POM进行项目A的构建?
我尝试的另一种方法是使项目A成为项目B的依赖项,因此它将被导入到WAR的WEB-INF / lib目录中,然后将其移动到其他位置。但这似乎有点混乱。
任何帮助,非常感谢。
答案 0 :(得分:6)
为此,您应该创建一个具有这样结构的多模块构建。
root
+-- pom.xml
+-- ProjectA
+-- pom.xml
+-- ProjectB
+-- pom.xml
通过上述结构,您可以非常优雅地处理您的问题。阅读有关multi-module builds等的内容。 一件事是使用更新版本的maven-war-plugin,因为当前版本是2.1.1而不是2.0.X。