2015-06-21 35 views
1

我有一个多模块Maven项目。我的父母POM具有以下模块:Maven在多模块项目属性扩展中构建配置文件

<module>common</module> 
<module>ingest</module> 
<module>package</module> 

package模块处理使用maven-antrun-plugin建设部署的zip文件的各个方面。其他两个模块是核心应用程序代码所在的位置。在package之内,我拥有各种配置文件,其中包含生产,暂存和开发环境的配置设置。每个配置文件看起来像:

<profile> 
    <id>prod</id> 
    <properties> 
      <oozie.url>http://oozie-server:11000/oozie</oozie.url> 
      <stage.user>prod-stage</stage.user> 
    </properties> 
</profile> 

这在父级别的作品完美,运行:

mvn clean install -P prod 

所有属性文件具有各种性能扩展为在Maven轮廓的人。

ingest模块中,一个类可能依赖于.properties文件和ingest模块。此属性的内容文件看起来是这样的:

stageUser=${stage.user} 

运行时为ingest模块测试,性能不会扩展为从构建配置文件的属性如该物业仍然是stageUser=${stage.user}而不是stageUser=prod-stage。这会导致测试失败。

我唯一的解决方法是添加所需的配置文件和属性以使测试进入ingest POM。这意味着我在packageingest两个模块中都有这些属性。有更好的解决方案吗?

回答

0

从父项属性的继承应该工作。确保您在子模块中有parent声明:

<parent> 
    <artifactId>parent</artifactId> 
    <groupId>parentGroupId</groupId> 
    <version>version</version> 
</parent> 
+0

完美谢谢manouti!我只是将配置文件部分移到父POM中并解决了问题 –

相关问题