1

Maven 3.0.4 の使用

それぞれのpomsで宣言されているように、いくつかのモジュールがwarファイルを生成し、いくつかのモジュールがjarファイルを生成するマルチモジュールmavenプロジェクトがあります

jar アーティファクトと依存関係を 1 つのサブディレクトリに入れ、webapp アーティファクト (依存関係なし) を別のサブディレクトリに入れる配布アーカイブを作成したいと考えています。

何かのようなもの

project.tar/lib     <-- module jars and deps here
project.tar/webapp  <-- wars here

アセンブリがすべてを 1 つのディレクトリにダンプするのは簡単です。

これは私が試したことです:

<assembly>
    <id>bin</id>
    <formats>
        <format>tar.gz</format>
    </formats>

    <moduleSets>
        <moduleSet>
            <includes>
                <include>${module.groupId}:${module.artifactId}:war:${module.version}</include>
            </includes>
            <binaries>
                <includeDependencies>false</includeDependencies>
                <outputDirectory>webapp</outputDirectory>
            </binaries>
        </moduleSet>
        <moduleSet>
            <includes>
                <include>${module.groupId}:${module.artifactId}:jar:${module.version}</include>
            </includes>
            <binaries>
                <includeDependencies>true</includeDependencies>
                <outputDirectory>lib</outputDirectory>
            </binaries>
        </moduleSet>
    </moduleSets>
</assembly>

これを実行すると、次の警告が表示されます。

[INFO] Reading assembly descriptor: assembly.xml
[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  '${module.groupId}:${module.artifactId}:war:${module.version}'

[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  '${module.groupId}:${module.artifactId}:jar:${module.version}'

[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  '${module.groupId}:${module.artifactId}:war:${module.version}'

[WARNING] NOTE: Currently, inclusion of module dependencies may produce unpredictable results if a version conflict occurs.
[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  '${module.groupId}:${module.artifactId}:jar:${module.version}'

私が間違っているのかわかりません。私のインクルードは、maven の Web ページで指定された「group:artifact:version」パターンに従っています。

ありがとう

4

1 に答える 1

3

これはうまくいくようです。しかし、それが最善の方法かどうかはわかりません。Mavenは${module.whatever}変数を尊重していないようです。

<dependencySets>
    <dependencySet>
        <includes>
            <include>${project.groupId}:*:war:${project.version}</include>
        </includes>
        <useProjectArtifact>true</useProjectArtifact>
        <outputDirectory>webapp</outputDirectory>
        <unpack>false</unpack>
    </dependencySet>
    <dependencySet>
        <excludes>
            <exclude>${project.groupId}:*:war:${project.version}</exclude>
        </excludes>
        <useProjectArtifact>true</useProjectArtifact>
        <outputDirectory>lib</outputDirectory>
        <unpack>false</unpack>
    </dependencySet>
</dependencySets>
于 2012-08-24T23:42:36.353 に答える