apache / apache/maven-javadoc-plugin
[MJAVADOC-624] tagletArtifacts throws exception in case artifact is a Java 9+ module
- Dominant language
- Java
- Stars
- 107
- Forks
- 116
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 16
Description
**[Martin Schelldorfer](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=schelldorfer)** opened **[MJAVADOC-624](https://issues.apache.org/jira/browse/MJAVADOC-624?redirect=false)** and commented
Auto-detect the class names for taglet artifacts fails in case artifact is a Java 9+ module.
When using configuration parameter tagletArtifacts, taglet classes are auto-detected.
JavadocUtil.getTagletClassNames() is scanning all classes in jar file (artifact).
Java 9+ modules contain the class module-info.class in jar file.
When trying to load module-info.class, the exception "java.lang.NoClassDefFoundError: module-info is not a class because access_flag ACC_MODULE is set" is thrown.
Class module-info has to be skipped in scanning loop.
---
**Affects:** 3.1.1
**Remote Links:**
- [GitHub Pull Request #31
](https://github.com/apache/maven-javadoc-plugin/pull/31)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at JavadocUtil.getTagletClassNames(), which scans classes in each taglet artifact, and reproduce the failure with a Java 9+ module containing module-info.class. Check the scanning loop and confirm the completed behavior no longer attempts to load module-info.class or throws the reported NoClassDefFoundError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100