Eri*_*ert 5 java javadoc maven
我的项目可以从源代码自动生成一些额外的帮助文件。
我如何让 maven 将这些文件安装到生成的 JavaDoc 包中?
我不知道如何拥有 Maven:
运行一些类来生成附加文档,例如编译和启动src/main/java/mypackage/ListOptions.java
akamypackage.ListOptions
以生成所有可用选项/模块/示例/等的列表。.
安装输出文件(我只能让 Maven 将文件安装src/main/javadoc/resources
到site/apidocs/resources
子文件夹中;但我希望此文档位于顶级site/apidocs
文件夹中;更准确地说,我根本不关心该site
部分,而是拥有完整的文档in mypackage-0.1.0-SNAPSHOT-javadoc.jar
; 包括从 javadoc 链接的非 Javadoc 生成的辅助信息)。
最小示例 - maven 的插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<docfilessubdirs>true</docfilessubdirs>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
目录布局:
./pom.xml
./src/main/java/foobar/GenerateNonstatic.java
./src/main/javadoc/staticfile.js
./src/main/javadoc/resources/insubfolder.png
Run Code Online (Sandbox Code Playgroud)
mvn package
产生:javadoc in./target/apidocs
和./target/foobar-0.0.1-SNAPSHOT-javadoc.jar
. 该文件target/apidocs/resources/insubfolder.png
最终位于文件夹target/apidocs/resources
(和.jar
)中,但未staticfile.js
安装。
我不清楚如何运行GenerateNonstatic.java
以将输出包含在 javadoc.jar
中。我没有看到一个钩子让 exec:exec 它在javadoc之后运行,并且在 ./target/foobar-0.0.1-SNAPSHOT-javadoc.jar
构建之前......
长话短说。和mojojavadoc:javadoc
都有javadoc:jar
其缺点。第一个是构建用于报告的 javadoc;后者将构建javadoc(到不同的目录中)并生成jar包。
因此,一些建议的答案效果不佳 - 他们会执行 javadoc 两次。
但我注意到javadoc 并不关心该文件夹是否已存在或包含文件。
所以我的解决方案很简单:在 中生成所需的附加文件prepare-package
,常规javadoc:jar
任务添加常规 javadoc 并很好地打包它。
只要您不打算修改javadoc 生成的文件(幸运的是,我不这样做 - 我只添加额外的文档),这就会起作用。
结果pom.xml
是这样的:
<plugins>
<!-- copy additional javadoc resources -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/apidocs</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/javadoc</directory>
<excludes>
<!-- overview.html is integrated by javadoc -->
<exclude>${basedir}/src/main/javadoc/overview.html</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Generate additional files for javadoc -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<id>generate-extra-javadoc</id>
<phase>prepare-package</phase>
<goals>
<!-- java is okay, but you only can have one -->
<goal>exec</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
<!-- Build JavaDoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1995 次 |
最近记录: |