1

maven-assembly-plugin バージョン 2.4 を使用して、 mypackageで始まる groupid の下に jar のみを含むリポジトリの zip を作成したいと考えています。

パターンmypackage.*:*でリポジトリを使用すると機能しません。ビルドは成功しましたが、リポジトリにはすべての依存関係が含まれています。

<formats>
    <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<repositories>
    <repository>
        <includes>
            <include>mypackage.*:*</include>
        </includes>
        <scope>test</scope>
        <includeMetadata>false</includeMetadata>
    </repository>
</repositories>

同じパターンで依存関係セットを使用すると機能します (すべての jar がルート フォルダーにあることを除いて ...):

<formats>
  <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
  <dependencySet>
    <includes>
      <include>mypackage.*:*</include>
    </includes>
    <unpack>false</unpack>
    <scope>test</scope>
    <useProjectArtifact>false</useProjectArtifact>
  </dependencySet>
</dependencySets>

構成に何か問題がありますか? maven-assembly でそれを行うことは可能ですか?

4

1 に答える 1

0

タグを使用してアセンブリを指定するrepositoriesと、プロジェクトの依存関係のすべての依存関係もインポートされますが、タグを使用してアセンブリ定義で明示的に除外する場合は除きますexcludes

例えば ​​:

<formats>
    <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<repositories>
    <repository>
        <includes>
            <include>mypackage.*:*</include>
        </includes>
        <excludes>
            <exclude>commons-cli:*</exclude>
        </excludes>
    </repository>
</repositories>

これにより、依存関係(プロジェクトまたはその依存関係の1つがもちろんそれを使用している場合) commons-cli:*とその依存関係を除外できます。問題は、除外する依存関係をリストする必要があることですが、リストを簡単に実行できmvn dependency:treeますあなたのプロジェクト。

于 2015-05-06T13:07:35.463 に答える