6

Maven アセンブリ XML に次の依存関係が含まれているとします...

<dependencySet>
  <includes>
    <include>com.company.product:library:jar:*:*</include>
  </includes>

... 上記のフィルターが、分類子を持たない library:jar をインクルードできないのはなぜですか?

[INFO] Reading assembly descriptor: assembly/release.xml
[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  'com.company.product:library:jar:*:*'

パターンにワイルドカードを追加した理由は、分類子「qa」を使用してすべてのライブラリを構築するプロファイルも持っているためです。そのプロファイルをアクティブにすると、すべてが機能しますが、デフォルトのプロファイル (分類子なしでライブラリをビルドする) では失敗します。

フィルターを次のように変更すると:

<include>com.company.product:library*</include>

その後、maven ビルドは実際には失敗し、次のエラーが表示されます。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-
plugin:2.3:single (make-assembly) on project java-package: Failed to create 
assembly: Error adding file 'com.company.product:library:jar:1.0.0-SNAPSHOT' 
to archive: C:\Subversion\JavaProj\library\target\classes isn't a file. -> [Help 1]

分類子の有無にかかわらず、jar を含むパターンを誰かが提案できますか?

4

4 に答える 4

11

<dependencies>pom.xml で確認してください: assembly-xml で参照している依存関係もありますか?

于 2015-09-16T09:27:55.097 に答える
2

同じ問題に直面しました。理由はわかりませんが、デフォルトのスコープを持つ依存関係は含まれmaven-assembly-pluginていません。組み立て修正compileとして作ります。provided

たとえば、com.company.product:library依存関係を確認して、それらに追加<scope>provided</scope>してみてください。次に、*すべてのライブラリを手動でリストする代わりに。(解決策を確認するためにそれらのいずれかを試すこともできます)

于 2016-04-18T13:13:35.897 に答える
2

最近、maven-assembly-plugin (バージョン 3.3.0) を使用しているときに同じ状況に遭遇しました。私がそれを解決するために使用した手順は次のとおりです。

于 2020-06-30T16:31:03.727 に答える
0

コロンcom.company.product:library*が必要なため、失敗していると思います: com.company.product:library:*( Maven: The Complete Reference のこの章を参照してください)。

ただし、これらのワイルドカードに頭を悩ませるのではなく、2 つのビルド プロファイルの 2 つのプロファイル (qa と非 qa) に個別のコンポーネント記述子を作成することをお勧めします。1 つは分類子を持つ依存関係をリストし、もう 1 つは分類子なしで依存関係をリストします。

確かに、XML ファイルと冗長なコンテンツが急増しますが、問題は解決します。

于 2012-10-10T20:27:54.887 に答える