Uploaded image for project: 'Maven Javadoc Plugin'
  1. Maven Javadoc Plugin
  2. MJAVADOC-652

Dependencies on the patch-module path



    • Bug
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 3.2.0
    • None
    • javadoc
    • None


      When building with Java 11 (so >9) the Javadoc options argument is built using the module-path and patch-module. Some of the dependencies I work with are ending up in patch-module which generates an error on Javadoc creation - class not found.

      From what I can see from the code (3.2.0), the decision of which argument to use is based on:

      1. If the dependency jar has a module-info.class, add to module-path
      2. If the dependency jar has a MANIFEST file with Automatic-Module-Name defined, add to module-path.
      3. If neither of the above, add to patch-module. 

      The javax.servlet-API-3.1.0.jar, for example, has neither 1 nor 2, so gets amended to the patch-module. This then prevents Javadoc generation because Java is unable to link classes from the servlet API. If I put the servlet API into the module-path manually it works fine. 

      From my understanding, patch-module is used to either override classes in a module or augment contents of a module. In this case, it is its own 'module' (I think) and should not be patched into my module. I do not see a reason to put any of my dependencies into patch-module. 

      Is this a bug, or just an unfortunate consequence of having to deal with non-modular dependencies when building under a Java version that supports modules. For what it is worth, the project I work on does not use modules, everything on -classpath works just fine. 



        1. MJAVADOC-652.zip
          4 kB
          Robert Scholte



            rfscholte Robert Scholte
            philsmart Phil
            0 Vote for this issue
            3 Start watching this issue