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

Build child module before parent module execute

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

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

那么,我该如何指示先构建子模块或解决此问题的任何其他方法。

不要将程序集放在父级中,而是添加另一个模块,例如名为 "release",它具有其他两个模块作为依赖项。因此,Maven 将首先构建两个模块并创建 tar-files,然后 release-module 将 assemble 所有内容组合在一起。