0

私はmavenマルチモジュールプロジェクトを持っています:

    • コモンズ
      • 共通モジュール
    • プラグイン
      • プラグイン

コモンとプラグインは同じ親を持たず、「スタンドアロン」です。

commons-module で、projectA と projectB の 2 つのプロファイルを定義します。これらのプロファイルのそれぞれで、dep.version、dep1.version などのプロパティを定義します。後で、「dep」および「dep1」セクションの依存関係のバージョン部分の dependencyManagemnt でこれらのプロパティを使用します。

プラグイン (プラグインの親) では、依存関係のリストを取得するために、commons-module に依存関係スコープのインポートがあります。プラグイン モジュールをビルドするときに、-PprojectA または -PprojectB を実行しても問題ないようです。maven はそれらが存在しないと言います。それらは存在しますが、私がインポートするcommonsモジュールにあります。そのため、依存関係をmvnするときに取得した依存関係に正しいバージョンがありません:tree

私が達成しようとしていることは可能ですか、私は何か間違っていませんか、これはMavenのバグですか、それともサポートされていない機能ですか? 誰かが手がかりを得ましたか?

ありがとう、ネイサン。

4

3 に答える 3

2

インポート スコープは、依存関係自体ではなく、dependencyManagement のみをインポートします。アーティファクトへの依存関係を宣言する必要があります。その後、バージョンやスコープなどが依存関係管理から取得されます。

pluginManagment セクションではインポートが機能しないと思います。リンク先のドキュメントには依存関係管理のみが記載されており、私が見た他の唯一の言及は、メーリングリストへのこの未回答の質問です。

于 2013-01-22T15:33:45.167 に答える
1

依存関係は、単にそれらの依存関係を使用するモジュールの POM を変更することはできません。それは安全なことではありません。プロジェクトに別の依存関係を追加すると、依存関係が実際に設定の一部をオーバーライドするため、突然ビルドが機能しなくなると想像してください。

<parent>POM 補間は、祖先プロジェクトからのみ設定を継承し、チェーンを上っていきます。

于 2012-12-23T15:42:22.243 に答える