java - 使用 Maven 创建一个包含已编译类和 javadoc 的 jar

标签 java maven jar javadoc

我正在尝试生成一个包含我们产品的 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/

相关文章:

java - 如何将 Map<Path, List<Path>> 流式传输到包含绝对路径作为字符串的 List<String>?

java - 是什么导致了 java.lang.NoSuchMethodError : com. fastxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

eclipse - 在 ECLIPSE java 中创建带有外部 jar (JXL) 的 jar 可执行文件

java - 如何使用 Netbeans 和 Maven 将 Web 片段打包到 jar 中

java - 无法加载类路径上的 jar 文件

java - JComboBox,itemStateChanged

java - 如何在 Java 中处理 finally block 中的抛出异常

java - 无法通过maven创建fat jar

java - mvn执行:java doesn't set classpath properly

java - 如何使用java生成s3风格的访问/ key