[
https://issues.apache.org/jira/browse/MJAVADOC-770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henning Schmiedehausen resolved MJAVADOC-770.
---------------------------------------------
Fix Version/s: 3.5.1
Resolution: Fixed
merged PR
> Allow building javadoc "the old fashioned way" after Java 8
> -----------------------------------------------------------
>
> Key: MJAVADOC-770
> URL: https://issues.apache.org/jira/browse/MJAVADOC-770
> Project: Maven Javadoc Plugin
> Issue Type: Improvement
> Components: javadoc
> Affects Versions: 3.5.0
> Reporter: Henning Schmiedehausen
> Assignee: Henning Schmiedehausen
> Priority: Major
> Fix For: 3.5.1
>
>
> The current javadoc plugin switches the way it executes the javadoc command
> when the release / source version is 9 or better. Specifically, it starts
> using the module path and tries to build docs using modules.
> Up until Java 8, it simply creates a class path and executed the javadoc
> command, creating a non-module aware set of documentation.
> There are a lot of projects (mine included) that have moved past Java 8 but
> are not ready to go full modularization. Those projects usually ship with
> Automatic-Module-Name in the manifest.
> The current JDK javadoc tooling does not work well with this type of project.
> Especially the module-source-path setting only works with projects that have
> module descriptors and javadoc chokes on patching a larger number of modules
> ("too many patched modules, use module-source-path"), making the aggregate
> goal non viable for these projects.
> One way to deal with this is to lock the release version for javadocs to "8".
> However, once the source code moves past Java 8, the javadoc tool starts
> throwing warnings (e.g. 'as of release 10, 'var' is a restricted type name
> and cannot be used for type declarations or as the element type of an
> array').
> The solution is actually simple: Allow a project to specify "the old way" of
> creating javadocs using a classpath. I have verified this by building
> javadocs using the "8" release version in debug mode, then manually changing
> the release settings in the options file to "11" and running the javadoc.sh
> command. This builds the javadocs as expected (java 11 syntax but non-module
> javadocs).
> However, currently the switch between that style and "the new way" is
> attached to release/source and can not be controlled independently.
> I propose adding a new switch to the javadoc plugin (e.g. <legacyMode>, as
> this is called "legacy mode" in JEP 261) with a default to "false". Setting
> this switch overrides the selection per release/source.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)