在我的项目结构中,我有2个子项目模块,该子模块一旦构建便创建了tar文件(不使用程序集来构建子模块,而是使用ant插件)。现在,我有一个父模块,该子模块将子模块的tar文件复制到通过程序集插件创建的另一个tar中,作为发行结构的一部分。
家长pom大会
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
汇编文件:
<fileSets>
<fileSet>
<directory>${project.basedir}/module1/target</directory>
<outputDirectory>/install/bin</outputDirectory>
<includes>
<include>*.tar</include>
</includes>
</fileSet>
</fileSets>
现在作为父构建在子模块构建之前执行,父模块将转到程序集文件和程序集文件以尝试获取提到的文件名,但是由于子模块直到那时才进行构建,因此出现错误。但是,如果我手动构建子项目,那么它可以正常工作。
因此,如何指示我首先构建子模块或解决此问题的任何其他解决方案。
答案 0 :(得分:2)
不要将程序集放在父级中,而是添加另一个模块,例如名为“发布”,它具有其他两个模块作为依赖项。因此,Maven将首先构建两个模块并创建tar文件,然后发布模块将所有内容组装在一起。