maven-javadoc-plugin
maven-javadoc-plugin copied to clipboard
[MJAVADOC-329] Allow generation of empty javadoc JARs
Add generateIfEmpty property to javadoc:jar goal, defaulting to false for backwards compatibility.
Add testGenerateIfEmpty property to javadoc:test-jar goal for consistency, defaulting to false for backwards compatibility.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<mkdir dir="${project.build.directory}/apidocs" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<sourceFileExcludes>
<exclude>**/internal/**/*.java</exclude>
</sourceFileExcludes>
</configuration>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
where no non-internal classes exist, therefore no public Javadoc is required, yet Maven Central requires inclusion of a Javadoc JAR during deployment.
This now simplifies to
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<sourceFileExcludes>
<exclude>**/internal/**/*.java</exclude>
</sourceFileExcludes>
<generateIfEmpty>true</generateIfEmpty>
</configuration>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Integration tests passed successfully.
[INFO] --- maven-invoker-plugin:3.2.1:verify (integration-test) @ maven-javadoc-plugin ---
[INFO] -------------------------------------------------
[INFO] Build Summary:
[INFO] Passed: 54, Failed: 0, Errors: 0, Skipped: 17
[INFO] -------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
As ASF Committer jfallows,
- [x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004
Checklist
Following this checklist to help us incorporate your contribution quickly and easily:
- [x] Make sure there is a JIRA issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a JIRA issue. Your pull request should address just this issue, without pulling in other changes.
- [x] Each commit in the pull request should have a meaningful subject line and body.
- [x] Format the pull request title like
[MJAVADOC-XXX] - Fixes bug in ApproximateQuantiles, where you replaceMJAVADOC-XXXwith the appropriate JIRA issue. Best practice is to use the JIRA issue title in the pull request title and in the first line of the commit message. - [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
- [x] Run
mvn clean verify -Prun-itsto make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
If your pull request is about ~20 lines of code you don't need to sign an Individual Contributor License Agreement if you are unsure please ask on the developers list.
To make clear that you license your contribution under the Apache License Version 2.0, January 2004 you have to acknowledge this by using the following check-box.
-
[x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004
-
[ ] In any other case, please file an Apache Individual Contributor License Agreement.
that would be a useful feature
I think there is a potential better way to solve this. Some plugins have a forceCreation parameter, we can leverage it here as well. I think it was maven-source-plugin.
closing in favor of #331
Resolve #640