将属性文件中的变量传递到pom.xml中的distributionManagement标记

时间:2012-05-18 14:52:01

标签: maven pom.xml

所以我有类似的东西:

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0-alpha-1</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>read-properties</goal>
                    </goals>
                    <configuration>
                        <files>
                            <file>${user.home}/build.properties</file>
                        </files>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我有distributionManagement喜欢:

<distributionManagement>
    <repository>
        <id>local-repo</id>
        <url>file:///${deploy.dir}/${project.artifactId}</url>
    </repository>
</distributionManagement>

我没有远程存储库,这就是我使用file:///

进行操作的原因

${deploy.dir}build.properties文件中的属性,它不会获取该属性的值。 为什么呢?

2 个答案:

答案 0 :(得分:4)

我建议使用构建配置文件来管理多个分发目标。例如:

<profiles>
   <profile>
      <id>repo1</id>
      <distributionManagement>
         <repository>
            <id>repo1-release</id>
            <url>http://.......</url>
         </repository>
      </distributionManagement>
   </profile>

   <profile>
      <id>repo2</id>
      <distributionManagement>
         <repository>
            <id>repo2-release</id>
            <url>http://.......</url>
         </repository>
      </distributionManagement>
   </profile>
   ..
</profiles>

调用部署目标时,您可以通过激活配置文件来选择目标:

mvn -Prepo1 clean deploy

答案 1 :(得分:2)

Mark的答案可能是要走的路,而且我正在做的是在我们的远程存储库的生产和测试实例之间切换。 Per a discussion I found听起来您可以加载属性以便在以后的插件配置中使用,但核心maven模型元素(如<distributionManagement>)仅在POM的初始加载时解释属性。

(移动评论以回答每个OP请求。)