5

次のようなマルチモジュールプロジェクトで分類子を使用しようとしています

ルート プロジェクト
--ejb
--jar
--servlet
--ear

ejb プロジェクトは jar プロジェクトに依存します war プロジェクトは ejb プロジェクトに依存し、推移的な方法で jar プロジェクトに依存します

残念ながら、私のサーブレット プロジェクトでは、jar プロジェクトの分類子が解決されません。

プロファイルも定義しました

 <profile>
  <id>dev</id>
    <properties>
      <maven.deployment.suffix>dev</maven.deployment.suffix>       
      <envClassifier>dev</envClassifier>
      <exploded>true</exploded>
       ...
    </properties>
 </profile>

このプロファイルとアーティファクトを分類してプロジェクトをパッケージ化しようとすると、常に次のエラーが発生します。

mvn -P dev clean install
...
[エラー] プロジェクト サーブレットでゴールを実行できませんでした: > > プロジェクト root.project.servlets:servlet:war:1.0 の依存関係を解決できませんでした: 成果物 root.project.projects:logging:jar:${ を転送できませんでしたenv Classifier}:1.0 from/to nexus ( http://.../nexus/content/groups/public ): > IllegalArgumentException: インデックス 102 のパスに不正な文字: .../nexus> /content/groups/public /root/project/projects/logging/1.0/logging-1.0-${envClassifier}.jar -> [ヘルプ 1]
[エラー]
[エラー] エラーの完全なスタック トレースを表示するには、Maven を - で再実行します。 e スイッチ。
[エラー] -X スイッチを使用して Maven を再実行し、完全なデバッグ ログを有効にします。
[エラー] ...

サンプルをbitbucketにアップロードしました

サーブレット プロジェクトで次のコマンドを実行しようとしました

$ mvn -P dev help:effective-pom

分類子がうまく解決されていることがわかりました。ただし、推移的な依存関係には適用されません。

唯一の回避策は、maven の起動時にプロパティを次のように注入することです。-DenvClassifier=dev

最後に、jira でいくつかの問題を確認しましたが、解決されていません。この問題を解決するにはどうすればよいですか? マルチモジュールプロジェクトで分類子を使用してmavenを使用するのは、地球上で私だけではないと思います...

4

0 に答える 0