【问题标题】:Property on maven when installed on repository are not replaced安装在存储库上时,Maven 上的属性不会被替换
【发布时间】:2014-01-18 04:10:35
【问题描述】:

将属性放在父 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

最近的maven版本解决了吗?最佳做法是什么?

【问题讨论】:

  • giusy 看来你知道回复 :-)

标签: maven maven-3


【解决方案1】:

最佳实践是在父 pom.xml

中配置dependencyManagement
<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 正如 MariuszS 所说,放在父 pom 上。我不认为这是为什么,但它应该是一个错误jira.codehaus.org/browse/MNG-2971 .. 或者不是
  • 为什么要在dependencyManagement 中定义一个带有属性的依赖项?使用dependecyManagement,您只需进行单点更改。
  • @khmarbaise 你是对的,但有时将所有版本放在一个地方(属性)更具可读性。
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2012-02-08
  • 2014-08-22
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多