Ben*_*ema 5 java javadoc maven
我有一个 Maven 多模块项目,其中一些子模块仅供内部使用。我不想为其发布任何可见的 Javadoc,因为它不应该由第三方直接使用。其中没有一个公共包(包名称本身类似于 abcinternal.d)。
但是,要将 jar 发布到 Maven Central,OSS Sonatype 要求所有库 jar 都具有随附的源代码和 javadoc jar。
如何强制使用固定索引创建 javadoc jar 或以便告诉子模块的用途?我想到了 package-info.java,但我没有公共包(所有带有“internal”一词的包都被忽略)。
不要使用 Javadoc 工具生成包含非标准内容的 jar:使用maven-jar-plugin来手动创建一个。
初始解决方案取自https://vzurczak.wordpress.com/2014/08/01/generate-an-empty-javadoc-jar-file/
这是我最终确定的解决方案,当在父 pom 中配置时,它通常适用于所有子模块:
定义两个配置文件:
Maven 配置:
<profiles>
<profile>
<id>standard-javadoc</id>
<activation>
<file><missing>src/main/javadoc</missing></file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<show>public</show>
<failOnError>false</failOnError>
<detectOfflineLinks>false</detectOfflineLinks>
<doclint>all,-missing</doclint>
<nohelp>true</nohelp>
<excludePackageNames>*.internal.*,testutil,demo</excludePackageNames>
<quiet>true</quiet>
</configuration>
</execution>
</executions>
<configuration>
<failOnError>false</failOnError>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>custom-javadoc</id>
<activation>
<file><exists>src/main/javadoc</exists></file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>javadoc</classifier>
<classesDirectory>${project.basedir}/src/main/javadoc</classesDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |