maven多模块工件部署

时间:2015-05-11 15:53:04

标签: java maven deployment configuration

我有一个多模块maven项目,其中父项构建所有模块,子pom聚合器处理配置文件部署。

我可以通过setController()从父模块部署捆绑包;但是,这无法附加子模块的build-helper插件部分中指定的配置文件。

这要求我为每个具有配置工件的子pom运行mvn clean deploy。对于诸如特征之类的工件也是如此。

以下是我的POM文件的示例:

mvn -f <child-module> clean deploy

儿童

<project>
    <groupId>com.sample</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>child</module>
    </modules>
</project>

我希望在每个子模块上执行<project> <parent> <groupId>com.sample</groupId> <artifactId>parent</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>child</artifactId> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>attach-config-file</id> <phase>install</phase> <goals> <goal>attach-artifact</goal> </goals> <configuration> <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot> <artifacts> <artifact> <file>properties.cfg</file> <type>cfg</type> <classifier>properties</classifier> </artifact> </artifacts> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> 目标,而无需编写自定义批处理脚本来单独执行这些目标。我正在部署到archiva存储库。

修改

父构建输出(目标服务器已编辑):

attach-artifact

1 个答案:

答案 0 :(得分:1)

删除或更改为false runOnlyAtExecutionRoot属性。

如果设置为true则:“这将导致执行仅在给定模块树的顶部运行。即,在包含在mvn执行的同一文件夹中的项目中运行已启动,推出。”

可能没有找到cfgs文件。