0

基本的に、この構造と依存関係を持つマルチモジュール プロジェクトがあります。

pom - With dependencies with scope provided
  + ---- mod1 - with mod1 dependencies
          + -----  depends on libAAA
          + ------ depends on libBBB
  + ---- mod2 - with mod2 dependencies
          + -----  depends on libXXX
          + ------ depends on libYYY

アセンブリ (maven-assembly-plugin を使用) は次のようになります。

bin/lib      - Contains all provided dependencies
bin/mod1/    - Contains mod1 artifact
bin/mod1/lib - Contains mod1 dependencies (only mod1) 
bin/mod2/    - Contains mod2 artifact
bin/mod2/lib - Contains mod2 dependencies (only mod2) 

すべてが「ほぼ」期待どおりに機能しますが、すべてのプロジェクトの依存関係が mod1/lib および mod2/lib にコピーされるため、結果のアセンブリはこのようになります

bin/mod1/lib
bin/mod2/lib
   BOTH containing libAAA, libBBB, libXXX, libYYY

私が期待しているのはこれです:

bin/mod1/lib
    containing libAAA, libBBB
bin/mod2/lib
    containing libXXX, libYYY

フィルターを使用せずに、これらの各ディレクトリに「分離された」(使用する単語がわからない) モジュールの依存関係をコピーすることが可能かどうかを誰かが知っていますか?

前もって感謝します、 トニオ

4

1 に答える 1

0

アセンブリ記述子を追加しています。

この記述子は、マルチモジュール プロジェクトの maven-assembly-plugin ドキュメントで説明されているように、distribution と呼ばれる「pom」モジュールに設定されます。

モジュールごとに1つだけではなく、2つのmoduleSetを生成しようとしましたが、結果は上記と同じです。

XML と pom の構成は次のとおりです。


    <?xml version="1.0" encoding="UTF-8"?>
    <assembly
        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
        <id>bin</id>

        <formats>
            <format>dir</format>
            <format>jar</format>
        </formats>

        <includeBaseDirectory>true</includeBaseDirectory>
        <baseDirectory>basic-modules</baseDirectory>

        <dependencySets>
            <dependencySet>
                <unpack>false</unpack>
                <scope>provided</scope>
                <outputDirectory>lib</outputDirectory>
                <excludes>
                    <exclude>*:payment-api</exclude>
                </excludes>
            </dependencySet>
        </dependencySets>

        <moduleSets>
            <moduleSet>

                <!-- Enable access to all projects in the current multimodule build! -->
                <useAllReactorProjects>true</useAllReactorProjects>

                <!-- Now, select which projects to include in this module-set. -->
                <includes>
                    <include>*:paypal-payment</include>
                    <include>*:moneris-payment</include>
                </includes>

                <binaries>
                    <outputDirectory>${module.artifactId}</outputDirectory>
                    <outputFileNameMapping>${module.artifactId}.${module.extension}</outputFileNameMapping>
                    <unpack>false</unpack>
                    <dependencySets>
                        <dependencySet>
                            <unpack>false</unpack>
                            <scope>runtime</scope>
                            <outputDirectory>${module.artifactId}/lib</outputDirectory>
                        </dependencySet>
                    </dependencySets>
                </binaries>
            </moduleSet>

        </moduleSets>
    </assembly>    

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>distro-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <finalName>basic-modules-${pom.version}</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                            <descriptor>assembly.xml</descriptor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
于 2012-10-02T18:27:44.197 に答える