我正在尝试生成一个包含我们产品的 API SDK 的 jar 文件,以便我们的客户可以创建插件并根据我们的 API 对其进行编译。我们作为 API SDK jar 的一部分提供的所有类/接口(interface)也包含在我们的主要产品中,因此 API 开发人员不需要将我们的 API SDK jar 包含到他们的插件 jar 中。因此,我不担心 API SDK jar 的大小。但是,我想让插件开发人员的生活更轻松,只提供一个包含编译类和 javadoc 的 jar 文件(这样开发人员可以在开发时将内联注释视为自动完成功能的一部分)。
我们使用Maven编译,我在API SDK pom.xml中添加了如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>attach-javadoc</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这有效,但是这会生成两个 jar 文件 - 一个包含已编译的类,另一个包含 javadoc。相反,我只想生成一个包含所有内容的 jar 文件。
我们目前使用 Maven 来编译这个项目,但是我们可以自由使用其他构建工具。
最佳答案
你可以这样做:
- 将 javadoc 目标附加到准备包
- 指定javadoc输出目录到target/classes
jar 插件将创建一个包含目标/类中所有内容的 jar(包括生成的 javadoc)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>attach-javadoc</id>
<phase>prepare-package</phase>
<goals>
<goal>javadoc</goal>
</goals>
<configuration>
<reportOutputDirectory>${project.build.directory}/classes/</reportOutputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
关于java - 使用 Maven 创建一个包含已编译类和 javadoc 的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988041/