从pom.xml自动激活settings.xml中定义的配置文件

时间:2013-12-02 00:11:07

标签: maven maven-3

我在settings.xml

中的配置文件中设置了一些相关的项目属性
<profile>
    <id>project_profile</id>
    <properties>
      <project.scm>/path/to/directory</project.scm>
    </properties>
</profile>

在我的pom.xml中,我希望项目配置文件默认使用此

激活
<profile>
    <id>project_profile</id>
     <activation>
         <activeByDefault>true</activeByDefault>
     </activation>
</profile> 

但是没有被激活,我知道如何归档这个?

3 个答案:

答案 0 :(得分:0)

配置文件激活基于 SYSTEM 属性。

您无法根据您的pom或其他内容中定义的属性激活配置文件

在构建计划开始执行后,您无法激活配置文件

答案 1 :(得分:0)

如果您在settings.xml中有配置文件,则应该放置您在此处始终使用的属性并在settings.xml中激活此配置文件(假设该配置文件包含所有项目非常常见的内容)或者您需要创建配置文件在settings.xml中默认情况下是无效的,并在使用 mvn -P custom_profile clean install 构建项目时激活它们。

正如@Jaffar Ramay正确提到的那样,您无法从pom.xml中控制settings.xml中定义的配置文件的激活。

答案 2 :(得分:0)

此选项接受一个参数,该参数是逗号分隔的profile-id列表。如果指定此选项,则不会激活除option参数中指定的配置文件之外的任何配置文件。 激活个人资料:

mvn groupId:artifactId:goal -P profile-1,profile-2

现在您可以使用以下命令调用profile-1:

mvn -Pprofile-1 install

停用个人资料

mvn groupId:artifactId:goal -P !profile-1,!profile-2

可以通过该部分在Maven设置中激活配置文件。每次项目使用标签时,默认情况下都会激活标签中列出的配置文件。 可以基于检测到的构建环境的状态自动触发配置文件。这些触发器通过配置文件本身中的一个部分指定。但是,您需要指定运行测试时要触发的配置文件。