在父模块执行之前构建子模块

时间:2019-06-21 09:44:07

标签: maven pom.xml maven-assembly-plugin parent-pom

在我的项目结构中,我有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>

现在作为父构建在子模块构建之前执行,父模块将转到程序集文件和程序集文件以尝试获取提到的文件名,但是由于子模块直到那时才进行构建,因此出现错误。但是,如果我手动构建子项目,那么它可以正常工作。

因此,如何指示我首先构建子模块或解决此问题的任何其他解决方案。

1 个答案:

答案 0 :(得分:2)

不要将程序集放在父级中,而是添加另一个模块,例如名为“发布”,它具有其他两个模块作为依赖项。因此,Maven将首先构建两个模块并创建tar文件,然后发布模块将所有内容组装在一起。