2012-07-23 147 views
3

我们有一个多模块Maven项目,由一个父POM和5个或更多模块组成。如何激活多模块项目中特定模块的Maven Profile

如果我们激活自定义的“自动部署”配置文件,每个模块都可以部署到正在运行的服务器,这是在每个模块中明确定义的,因为每个部署的/模块。当从父POM构建时,如果激活“自动部署”配置文件,Maven将最终部署所有模块,这几乎不是我们需要做的事情(基于我们的开发流程等)。但我们希望从根开始构建,因为可能会在多个模块中进行更改,并且某些模块之间存在依赖关系。

从父POM构建时,是否有办法为模块中的一个模块激活我们的自定义“自动部署”配置文件,但不是全部?

感谢

回答

4

如果每个模块都有它自己的“自动部署”配置文件和配置文件的激活将被传递给mvn命令变量被触发,你将能够父模块上运行单一MVN命令并决定哪些模块应该简单地通过声明激活变量

<profiles> 
    <profile> 
     <id>profileId</id> 
     <activation> 
      <property> 
       <name>profileIdEnabled</name> 
       <value>true</value> 
      </property> 
     </activation> 
     <properties></properties> 
    </profile> 
</profiles> 

然后

mvn -DprofileIdEnabled=true 
3

退房01部署。

从Maven 2.1版本开始,有一些新的Maven命令行选项允许您操作Maven构建multimodule项目的方式。这些新的选项是:

-rf,--resume-从

Resume reactor from specified project 

-pl,--projects

Build specified reactor projects instead of all projects 

-am, - 兼-MAKE

If project list is specified, also build projects required by the list 

-AMD, - 兼 - 化妆家属

If project list is specified, also build projects that depend on projects on the list 

要建立从根目录仅模块B:

$ MVN --projects模块-B安装

+2

如果我想构建所有项目,但只是自动部署其中一个项目,该怎么办?或者在我的情况下,跳过除了一个之外的所有测试,并仍然构建它们? – 2015-01-12 22:52:31