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>

質問の半分を解決したいくつかの回答に基づいて編集...

これは実際には1つのリリース番号を持つ1つのプロジェクトであるため、すべてのバージョンを${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

現在、非常にうまく機能するgradleに切り替えました。新しいバージョンの自動ビルドはすべて 1.2.x としてリリースされます。x は次のビルド番号です。下流のプロジェクトは 1.2.+ に依存します。これにより、すべてのリリースが公式になるため、QA がテストしたり、拒否したり、行ったりすることができます。ビルド 1.2.568 が、私たちが世界にリリースするリリースです。プロジェクトは 1.2 に依存できます。しかし、その後、バグ修正は行われません。これは、QA にスナップショットを提供し、承認され、変更して別のビルドを実行する必要があるため、スナップショットのナンセンスよりもはるかにうまく機能するようです。たまたますべての QA テストに合格したものをリリースできるように、すべてのビルドが公式に見えるようにしたいと考えています。

于 2012-09-06T12:48:31.850 に答える
0

project.version はあなたが望むものです。parent.version ではありません。

于 2012-06-11T15:36:43.643 に答える
0

依存関係の親 pom のバージョンを集中化するには、dependencyManagement タグを使用する必要があります。

この質問と回答を参照してください

Mavenの依存関係管理と依存関係の違い

独自のモジュールの場合、一部のプロパティは親 pom から継承されます。各子で親バージョンを宣言する必要がありますが、親と同じにしたい場合は、子 pom で groupId/version を宣言する必要はありません。

于 2012-06-11T15:52:26.467 に答える