diff --git a/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java b/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java index 056198d200..f22bcf66e0 100644 --- a/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java +++ b/maven-javadoc-plugin/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java @@ -4653,9 +4653,11 @@ private void addJavadocOptions( List arguments, List sourcePaths addArgIf( arguments, breakiterator, "-breakiterator", SINCE_JAVADOC_1_5 ); } - File mainDescriptor = new File( "src/main/java/module-info.java" ); - - if ( mainDescriptor.exists() && !isTest() ) + List roots = getProjectSourceRoots( getProject() ); + + File mainDescriptor = findMainDescriptor( roots ); + + if ( mainDescriptor != null && !isTest() ) { LocationManager locationManager = new LocationManager(); ResolvePathsRequest request = @@ -4739,6 +4741,24 @@ private void addJavadocOptions( List arguments, List sourcePaths } } + private static File findMainDescriptor( List roots ) + throws MavenReportException + { + for ( String root : roots ) + { + File descriptorFile = new File( root, "module-info.java" ).getAbsoluteFile(); + if ( descriptorFile.exists() ) + { + if ( !descriptorFile.isFile() ) + { + throw new MavenReportException( descriptorFile + " is not a regular file" ); + } + return descriptorFile; + } + } + return null; + } + /** * Add Standard Doclet Options. *