如何将Maven构建工件从子模块目标复制到父目标?



有一个模块化的Maven项目,其中有几个模块(本例中为3个),它们以某种方式相互依赖。
下面是根项目pom(没什么特别的):

<project>
<modelVersion>4.0.0</modelVersion>
<description>Root project for modules build</description>
<groupId>abc</groupId>
<artifactId>xyz</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>modules/first</module>
<module>modules/second</module>
<module>modules/third</module>
</modules>
</project>

在构建根项目(mvn package)之后,我们在"目标"中相应地获得了三个工件。文件夹

%rootdir%/modules/first/target/artifact_1.jar
%rootdir%/modules/second/target/artifact_2.jar
%rootdir%/modules/third/target/artifact_3.jar

我想将artifact_3.jar复制到%rootdir%/target/main_artifact.jar中,以强调整个构建的目标是这个jar文件。

我知道如何将一个文件复制到一个特定的文件夹,但是这个"命令"。复制似乎是一种打破Maven抽象的非常规行为。

把工件main_artifact.jar放到%rootdir%/target/的正确位置上的正确方法是什么?
假设必须有一个配置添加到%rootdir%/pom.xml。如果您能分享一个标准的Maven方法,我将不胜感激。

在Maven中,您不能将工件从一个目标复制到另一个目标。

您在各自的目标目录中构建它们,然后将它们安装到本地存储库和/或将它们部署到Maven存储库(如Nexus或Artifactory)。

因此Maven没有办法将工件从一个目标复制到另一个目标,因为您只是不这样做。

最新更新