如何使pom.xml使用特定于每个开发人员本地环境的本地属性?

时间:2015-12-09 06:26:01

标签: maven

我们的subversion服务器上有一个maven项目。项目中有一个pom.xml。当我想将项目导入我的本地计算机并对其进行更改时,我必须相对于pom.xml内的本地系统更改此行,因为我需要在本地系统上部署项目以在提交之前对其进行测试:

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.4</version>
      <configuration>
            <webappDirectory>/opt/JBoss_4.0.4.GA/server/default/deploy/agg-gateway.war</webappDirectory>
      </configuration>
</plugin>

我的每个团队成员都应该相对于他们的本地系统做到这一点。

但是这个设置必须在主项目上保持不变,我不能将pom.xml提交给subversion。如果我的一个团队成员更改了此文件,那么每次更新项目时,我都必须相对于我的本地系统再次更改它。

有没有办法让文件在subversion上不可更改?我无法控制所有人不要将pom.xml提交给svn

1 个答案:

答案 0 :(得分:4)

Injecting POM Properties via settings.xml

~/.m2/settings.xml中使用特定于每个开发者的自定义属性:

<profiles>
  <profile>
    <id>local-weblogic</id>
    <properties>
      <local.weblogic.deployment.directory>/opt/JBoss_4.0.4.GA/server/default/deploy/agg-gateway.war</local.weblogic.deployment.directory>
    </properties>
  </profile>
</profiles>

<activeProfiles>
  <activeProfile>local-weblogic</activeProfile>
</activeProfiles>

并在pom.xml

中使用对该媒体资源的引用
<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.4</version>
      <configuration>
            <webappDirectory>${local.weblogic.deployment.directory}</webappDirectory>
      </configuration>
</plugin>