49

私はいくつかのMavenプロジェクトを持っており、それぞれにいくつかの共通の機能または少なくとも共通の構成/依存関係があります。これを共通のpom.xmlに抽出し、永続性、Spring関連の依存関係など、いくつかのファセットをモジュール化しました。これらはすべて、この親POMから継承する独自のモジュールに含まれています。

現在、「Common」はバージョン1.0.0で、継承したい「ProjectA」があります。警告が表示されます:

バージョンが親バージョンと重複しています

これが警告である理由を完全には理解していません。バージョンを継承するために、プロジェクトPOMからバージョンを省略するオプションがあると思いました。(これは共通モジュールに対して行います。たとえば、common-springはSpringアプリに共通の依存関係を追加します。実際、ProjectAは実際にはcommon-springから継承します。)

それだけではありません-オプションですか?ProjectAのバージョンを1.0.1または2.0.0に変更すると、すべて問題ありません。

4

3 に答える 3

61

新しいバージョンのm2e(1.1以降)では、この警告を無効にできるようになりました。

環境設定>Maven>警告>「バージョンが親バージョンと重複しています」警告を無効にする

元のバグレポート:https ://bugs.eclipse.org/bugs/show_bug.cgi?id = 356796

于 2012-10-03T14:49:26.857 に答える
57

バージョン要素(グループIDなど)が冗長であり、親POMから継承できる場合があるため、賢くしようとしているのはm2eだけです。したがって、この要素を子POMから削除しても安全です。

ただし、親プロジェクトと子プロジェクトのライフサイクルが異なる場合など、これが冗長な情報ではない場合があります。m2eでは、この警告を無効にする必要があります。残念ながら、これを行う方法はまだありません:http: //dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

更新:ダンカンが以下に言うように、新しいバージョンでは、この警告を無効にすることができます。

于 2011-12-16T18:40:47.930 に答える
2

それが本当にあなたを悩ませている場合は、プロパティを使用して、巧妙な手先の早業で警告を抑制します。

<version>${api.version}</version>
<properties>
    <api.version>0.0.1-SNAPSHOT</api.version>
</properties>

ただし、実際に行うのは、警告をコンソール出力に移動することだけです。

[WARNING] Some problems were encountered while building the effective model for [project]
[WARNING] 'version' contains an expression but should be a constant.
于 2012-05-09T14:16:46.427 に答える