2

アセンブリ (専用の子プロジェクトから実行) に、親によって集約された Javadoc を含めようとしています。残念ながら、moduleSet に親を含めようとすると、アセンブリ中に次のように無視されます。

[WARNING] The following patterns were never triggered in this artifact inclusion
filter:
o  'com.company.foo.product:foo-java-product'

これは、親が技術的に「モジュール」ではないためだと思われますが、親のターゲット ディレクトリにある javadoc を参照する他の方法は考えられません。子モジュールからアセンブリを実行している理由は、親の pom.xml から実行したときに依存関係セットを機能させることができなかったためです (実際、上記のエラーと同様のエラーです)。

誰かが解決策を推奨できますか?

これが私のアセンブリファイルです(必要なソースと依存関係をすでに正常に取得しています):

<assembly>
  <id>dist</id>
  <formats>
    <format>dir</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <moduleSets>
    <!-- Include Javadoc -->
    <moduleSet>
        <useAllReactorProjects>true</useAllReactorProjects>
        <includes>
            <include>com.company.foo.product:foo-java-product</include>
        </includes>
        <sources>
            <includeModuleDirectory>false</includeModuleDirectory>
            <fileSets>
                <fileSet>
                    <outputDirectory>docs/Javadoc</outputDirectory>
                    <directory>target/site</directory>
                </fileSet>
            </fileSets>
        </sources>
    </moduleSet>
    <!-- Include sources for sample project tests-->
    <moduleSet>
        <useAllReactorProjects>true</useAllReactorProjects>
        <includes>
            <include>com.company.foo.product:samples</include>
        </includes>
        <sources>
            <includeModuleDirectory>false</includeModuleDirectory>
            <fileSets>
                <fileSet>
                    <outputDirectory>source</outputDirectory>
                    <directory>src/test/java</directory>
                    <includes>
                        <include>com/company/foo/samples/Sample*.java</include>
                    </includes>
                </fileSet>
            </fileSets>
        </sources>
    </moduleSet>
  </moduleSets>
  <dependencySets>
    <!-- Include 3rd Party Dependencies -->
    <dependencySet>
        <excludes>
            <exclude>com.company.foo.product:common</exclude>
            <exclude>com.company.foo.product:consumer</exclude>
            <exclude>com.company.foo.product:publisher</exclude>
            <exclude>com.company.foo.product:samples</exclude>
        </excludes>
        <outputDirectory>lib</outputDirectory>
        <useProjectArtifact>false</useProjectArtifact>
    </dependencySet>
  </dependencySets>
</assembly>

アプリ配布 pom.xml は次のとおりです。

<project>
  <parent>
    <groupId>com.company.foo.product</groupId>
    <artifactId>foo-java-product</artifactId>
    <version>0.5-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>app-distribution</artifactId>
  <name>app-distribution</name>
  <packaging>pom</packaging>
  <dependencies>
    <dependency>
        <groupId>com.company.foo.product</groupId>
        <artifactId>consumer</artifactId>
    </dependency>
    <dependency>
        <groupId>com.company.foo.product</groupId>
        <artifactId>publisher</artifactId>
    </dependency>
    <dependency>
        <groupId>com.company.foo.product</groupId>
        <artifactId>samples</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <descriptors>
                    <descriptor>assemblies/sources.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
</project>

親の pom.xml は次のようになります。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.company.foo.product</groupId>
  <artifactId>foo-java-product</artifactId>
  <version>0.5-SNAPSHOT</version>
  <packaging>pom</packaging>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>
  <modules>
    <module>Common</module>
    <module>Consumer</module>
    <module>Publisher</module>
    <module>Samples</module>
    <module>app-distribution</module>
  </modules>
  <build>
    <pluginManagement>
        <plugins>
            ...
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.8.1</version>
            <configuration>
                <quiet>true</quiet>
                <stylesheet>maven</stylesheet>
                <splitindex>true</splitindex>

            </configuration>
            <executions>
                <execution>
                    <id>javadoc-jar</id>
                    <phase>package</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!--
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <descriptors>
                    <descriptor>assemblies/sources.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        -->
    </plugins>

  </build>
  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.company.foo.product</groupId>
            <artifactId>common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.company.foo.product</groupId>
            <artifactId>publisher</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.company.foo.product</groupId>
            <artifactId>consumer</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.company.foo.product</groupId>
            <artifactId>samples</artifactId>
            <version>${project.version}</version>
        </dependency>
  </dependencyManagement>
</project>
4

0 に答える 0