1

我在父 pom 和子 pom 中都有所有这些版本号,包括像这样的父参考

  <parent>
     <groupId>com.cigna.ifp</groupId>
     <artifactId>ifp-core</artifactId>
     <version>${parent.version}</version>
  </parent>

以及对其他子项目的依赖引用,就像这样

<dependency>
  <groupId>com.cigna.ifp</groupId>
  <artifactId>ifp-shared</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

最后是我们正在构建的东西版本的声明

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.company</groupId>
  <artifactId>artifcat</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>ifp-shared</name>
  <url>http://maven.apache.org</url>

根据一些解决了一半问题的答案进行编辑...

我们希望所有版本都是 ${project.version} 因为它实际上只是一个具有一个发行号的项目。

我似乎可以在依赖项中执行 ${project.version} ,但这在上面的父 xml 代码中不起作用。还有其他方法吗?(伙计,我真的应该切换到 gradle)。

谢谢,院长

4

4 回答 4

1
<parent>
 <groupId>com.cigna.ifp</groupId>
 <artifactId>ifp-core</artifactId>
 <version>1.2.3-SNAPSHOT</version> <!-- real version-->
</parent>

<artifactId>blah</artifactId>
<!-- No version here, will be inherited -->

<dependency>
  <groupId>com.cigna.ifp</groupId>
  <artifactId>ifp-shared</artifactId>
  <version>${project.version}</version>
</dependency>
于 2012-06-11T15:37:32.233 回答
0

project.version 是你想要的。不是父版本。

于 2012-06-11T15:36:43.643 回答
0

您需要使用dependencyManagement 标记将依赖项的父pom 中的版本居中。

看到这个问题和答案

maven中依赖管理和依赖的区别

对于您自己的模块,一些属性是从父 pom 继承的。您需要在每个孩子中声明父版本,但如果您希望它们与其父版本相同,则不需要在您的孩子 pom 中声明 groupId/version。

于 2012-06-11T15:52:26.467 回答
0

我们切换到了 gradle,它现在工作得非常好。每个自动构建一个新版本都作为 1.2.x 发布,其中 x 是下一个构建号。下游,项目依赖 1.2.+。这使得每个版本都是官方的,因此 QA 可以对其进行测试、拒绝或继续,是的,构建 1.2.568 是我们将向全世界发布的版本。项目可以依赖于 1.2。但是他们没有得到错误修复。当您给 QA 一个快照并且他们批准并且您必须更改并进行另一个构建时,这似乎比所有那些快照废话要好得多。我们希望每个构建看起来都是官方的,这样他们就可以发布恰好通过所有 QA 测试的构建。

于 2012-09-06T12:48:31.850 回答