gpt4 book ai didi

Maven 3 : Generate Javadoc for defined artifacts

转载 作者:行者123 更新时间:2023-12-02 09:04:17 28 4
gpt4 key购买 nike

我只想从专用文档项目中为我的项目的某些 Artifact 生成 javadoc。

这意味着我想要一个名为“docs”的独立项目。在 docs/pom.xml 中,我想定义应包含在生成的 javadocs 中的 Artifact 。

到目前为止,我了解到我必须为我想要包含的项目生成一个单独的sources.jar。但我不知道如何继续下去。

目前我只能想象两种方法:

  1. 获取我想要包含的 Artifact (sources.jar),解压它们并以某种方式将 Javadoc 插件指向源目录。

  2. 将我感兴趣的 Artifact 定义为依赖项,并使用 javadoc-plugin 的“dependencySourceInclude”选项。但我不确定这是否是预期的用法。

有什么建议可以解决这个问题吗?

最佳答案

我自己找到了解决方案。这有点麻烦,但对我来说确实有用。我选择遵循我的第一个想法:

Get the artifacts (sources.jar) I want to include, unpack them and somehow point the javadoc plugin to the source directory.

这个解决方案有四个不同的部分,我稍后将更详细地解释:

  1. 在我想要包含的所有 Artifact 中生成sources.jar
  2. 解压这些sources.jar
  3. 通过将 javadoc-plugin 指向解压的源代码来生成 Javadoc
  4. 将生成的 apidocs 打包到 zip 文件中

现在更详细:

<强>1。在我想要包含的所有 Artifact 中生成sources.jar

要生成sources.jar,您必须使用maven-sources-plugin,如下所示:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>bundle-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

您必须在要包含在 apidocs 中的每个项目/模块/Artifact 中执行此操作。

<强>2。解压这些sources.jars

在用于生成javadoc的pom.xml中,您必须添加以下插件来解压sources.jar文件。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-artifact-sources</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId><!-- your artifact here --></artifactId>
<version>${project.version}</version>
<classifier>sources</classifier>
<overWrite>true</overWrite>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/unpack_sources</outputDirectory>
</configuration>
</execution>
<!-- add more unpack-executions here -->
</executions>
</plugin>

您可以根据需要添加任意数量的解包执行 block 。

<强>3。通过将 javadoc-plugin 指向解压的源代码来生成 Javadoc

现在是棘手的部分。让 javadoc-plugin 知道在哪里查找源文件。导入的定义是 <sourcepath>定义。在本节中,我们定义在步骤 2 中解压源代码的文件夹。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<sourcepath>${project.build.directory}/unpack_sources</sourcepath>
</configuration>
<executions>
<execution>
<goals>
<goal>javadoc</goal>
</goals>
<phase>process-resources</phase>
</execution>
</executions>
</plugin>

当您调用mvn clean install时此时您将得到 site target 内的文件夹文件夹。在此站点文件夹中,您将找到您的 apidocs。但为了让这个构建变得光彩夺目,我们希望将 apidocs 组装到一个 zip 存档中。

<强>4。将生成的 apidocs 打包为 zip 文件

要组装文档,您必须使用 maven-assembly-plugin和一个额外的汇编文件。首先是 pom 中的插件定义:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>docs-assembly</id>
<phase>package</phase>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assemble.xml</descriptor>
</descriptors>
</configuration>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

汇编.xml:

<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<id>${project.build.finalName}</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>target/site/apidocs</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>

关于Maven 3 : Generate Javadoc for defined artifacts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947215/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com