我有一个多模块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
答案 0 :(得分:1)
删除或更改为false runOnlyAtExecutionRoot
属性。
如果设置为true
则:“这将导致执行仅在给定模块树的顶部运行。即,在包含在mvn执行的同一文件夹中的项目中运行已启动,推出。”
可能没有找到cfgs文件。