安装在存储库上的maven上的属性不会被替换

时间:2014-01-17 20:01:04

标签: maven maven-3

将一个属性放在父pom上并在你的孩子pom上引用它似乎是一种不好的做法

例如

父pom.xml

 <my.related.version>3.3.0.ga</my.related.version>

myproject / pom.xml

<dependency>
    <groupId>my.related</groupId>
    <artifactId>my.related</artifactId>
    <version>${my.related.version}</version>
</dependency>

当您在maven存储库上安装和部署myproject并从工作区外的第二个项目引用它时,您可以“crox”

  

无法传输工件   my.related:my.related:POM:$ {my.related.version}

我不明白为什么?

如何解决?注意:该问题与

有关
  1. Maven - Replace property in project.pom file when installing in repository没有真正的解释。
  2. http://jira.codehaus.org/browse/MNG-2971?focusedCommentId=169243&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_169243
  3. 最近的maven版本是否解决了?哪种是最佳做法?

1 个答案:

答案 0 :(得分:2)

最佳做法是在父 pom.xml

中配置dependencyManagement
<dependencyManagement>
  <dependency>
    <groupId>my.related</groupId>
    <artifactId>my.related</artifactId>
    <version>${my.related.version}</version>
  </dependency>
</dependencyManagement>
myproject / pom.xml

中没有版本的

dependency

<dependency>
    <groupId>my.related</groupId>
    <artifactId>my.related</artifactId>
</dependency>

更多信息:Introduction to the Dependency Mechanism