2014-01-17 89 views
0

這似乎是一個不好的做法,把財產上的父POM,並引用它在你的孩子POM財產上的Maven不會被替換

父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你引用它FROMA第二個項目工作區外,可以在「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

它是否已經解決了最近Maven版本?最佳做法是什麼?

+1

毫秒,你知道的迴應:-) – venergiac

回答

2

最好的做法是在父配置dependencyManagement的pom.xml

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

dependency沒有版本的myproject/pom.xml的

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

的更多信息:Introduction to the Dependency Mechanism

它看到的giusy
+1

@giusy作爲MariuszS說放在家長pom。我不認爲爲什麼,但它應該是一個bug http://jira.codehaus.org/browse/MNG-2971 ..或不是 – venergiac

+0

t2u giac和Mairusz – giusy

+0

你爲什麼要在dependencyManagement中定義一個依賴屬性?藉助依賴管理,您完全可以單點更改。 – khmarbaise