[ https://issues.apache.org/jira/browse/SLING-8682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16925470#comment-16925470 ]
Krystian Nowak edited comment on SLING-8682 at 9/9/19 9:05 AM: --------------------------------------------------------------- [~cziegeler]: Isn't it the case that when sourcesDir is empty, no javadoc at all should be generated anyway? I was checking what happens in IT apis-jar-wrapped-flattened-classes in both Java 8 and Java 11 case. Even though in Java 8 it seems fine from outside: {noformat} docker volume create --name maven-repo {noformat} {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-8 mvn clean install {noformat} pretends to work OK: {noformat} [INFO] Building: apis-jar-wrapped-flattened-classes/pom.xml [INFO] run post-build script verify.bsh [INFO] apis-jar-wrapped-flattened-classes/pom.xml ....... SUCCESS (92.2 s) {noformat} (...) {noformat} [INFO] BUILD SUCCESS {noformat} *BUT* when changing the directory: {noformat} cd target/it/apis-jar-wrapped-flattened-classes {noformat} and running: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-8 mvn clean install {noformat} we get: {noformat} [INFO] --- slingfeature-maven-plugin:1.1.1-SNAPSHOT:apis-jar (analyze) @ slingfeature-maven-plugin-test --- [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-apis.jar [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-sources.jar [INFO] Executing javadoc tool: [/usr/local/openjdk-8/jre/../bin/javadoc, @/usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test/base/base-javadoc] [INFO] javadoc: error - No packages or classes specified. {noformat} (...) {noformat} 1 error [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar {noformat} (...) {noformat} [INFO] BUILD SUCCESS {noformat} In Java 11 instead: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-11 mvn clean install {noformat} results in expliticly failed IT: {noformat} [INFO] Building: apis-jar-wrapped-flattened-classes/pom.xml [INFO] run post-build script verify.bsh [INFO] apis-jar-wrapped-flattened-classes/pom.xml ....... FAILED (88.2 s) [INFO] The build exited with code 1. See /usr/src/mymaven/target/it/apis-jar-wrapped-flattened-classes/build.log for details. {noformat} resulting in: {noformat} [INFO] ------------------------------------------------- [INFO] Build Summary: [INFO] Passed: 7, Failed: 1, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------- [ERROR] The following builds failed: [ERROR] * apis-jar-wrapped-flattened-classes/pom.xml {noformat} and {noformat} [INFO] BUILD FAILURE {noformat} Also diving into the specific directory: {noformat} cd target/it/apis-jar-wrapped-flattened-classes {noformat} and running: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-11 mvn clean install {noformat} we get an explicit javadoc error (similar to the one in Java 8 case, but this one fails the outer build, hence it was visible from outside): {noformat} [INFO] --- slingfeature-maven-plugin:1.1.1-SNAPSHOT:apis-jar (analyze) @ slingfeature-maven-plugin-test --- [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-apis.jar [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-sources.jar [INFO] Executing javadoc tool: [/usr/local/openjdk-11/bin/javadoc, @/usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test/base/base-javadoc] [INFO] javadoc: error - No modules, packages or classes specified. 1 error [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ {noformat} So it seems in case when _sourcesDir_ list in [https://github.com/apache/sling-slingfeature-maven-plugin/blob/master/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java#L258-L260] is empty, both in Java 8 and Java 11 the _javadoc_ exec invocation fails, but the failure is not propagated up in Java 8, only in Java 11 case, hence only then it was visible from outside in SLING-8597 and the resulting [https://github.com/apache/sling-slingfeature-maven-plugin/commit/23e848409876cfa35b0ec8669612d73351f4e2e3] - possibly SLING-8681 could be extended into not calling _javadoc_ exec at all if _sourcesDir_ list is empty. It would result in not having javadocs jar produced in this case, but the jar produced in Java 8's case (when the error doesn't stop the build) is almost empty anyway: {noformat} $ unzip -l target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar Archive: target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar Length Date Time Name --------- ---------- ----- ---- 201 09-09-2019 08:41 META-INF/MANIFEST.MF 0 09-09-2019 08:41 META-INF/ 0 09-09-2019 08:41 META-INF/maven/ 0 09-09-2019 08:41 META-INF/maven/org.apache.sling/ 0 09-09-2019 08:41 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/ 2110 09-09-2019 08:24 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/pom.xml 121 09-09-2019 08:41 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/pom.properties --------- ------- 2432 7 files {noformat} was (Author: krystian): [~cziegeler]: Isn't it the case that when sourcesDir is empty, no javadoc at all should be generated anyway? I was checking what happens in IT apis-jar-wrapped-flattened-classes in both Java 8 and Java 11 case. Even though in Java 8 it seems fine from outside: {noformat} docker volume create --name maven-repo {noformat} {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-8 mvn clean install {noformat} pretends to work OK: {noformat} [INFO] Building: apis-jar-wrapped-flattened-classes/pom.xml [INFO] run post-build script verify.bsh [INFO] apis-jar-wrapped-flattened-classes/pom.xml ....... SUCCESS (92.2 s) {noformat} (...) {noformat} [INFO] BUILD SUCCESS {noformat} *BUT* when changing the directory: {noformat} cat target/it/apis-jar-wrapped-flattened-classes {noformat} and running: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-8 mvn clean install {noformat} we get: {noformat} [INFO] --- slingfeature-maven-plugin:1.1.1-SNAPSHOT:apis-jar (analyze) @ slingfeature-maven-plugin-test --- [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-apis.jar [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-sources.jar [INFO] Executing javadoc tool: [/usr/local/openjdk-8/jre/../bin/javadoc, @/usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test/base/base-javadoc] [INFO] javadoc: error - No packages or classes specified. {noformat} (...) {noformat} 1 error [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar {noformat} (...) {noformat} [INFO] BUILD SUCCESS {noformat} In Java 11 instead: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-11 mvn clean install {noformat} results in expliticly failed IT: {noformat} [INFO] Building: apis-jar-wrapped-flattened-classes/pom.xml [INFO] run post-build script verify.bsh [INFO] apis-jar-wrapped-flattened-classes/pom.xml ....... FAILED (88.2 s) [INFO] The build exited with code 1. See /usr/src/mymaven/target/it/apis-jar-wrapped-flattened-classes/build.log for details. {noformat} resulting in: {noformat} [INFO] ------------------------------------------------- [INFO] Build Summary: [INFO] Passed: 7, Failed: 1, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------- [ERROR] The following builds failed: [ERROR] * apis-jar-wrapped-flattened-classes/pom.xml {noformat} and {noformat} [INFO] BUILD FAILURE {noformat} Also diving into the specific directory: {noformat} cat target/it/apis-jar-wrapped-flattened-classes {noformat} and running: {noformat} docker run -it --rm --name my-maven-project -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.1-jdk-11 mvn clean install {noformat} we get an explicit javadoc error (similar to the one in Java 8 case, but this one fails the outer build, hence it was visible from outside): {noformat} [INFO] --- slingfeature-maven-plugin:1.1.1-SNAPSHOT:apis-jar (analyze) @ slingfeature-maven-plugin-test --- [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-apis.jar [INFO] Building jar: /usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-sources.jar [INFO] Executing javadoc tool: [/usr/local/openjdk-11/bin/javadoc, @/usr/src/mymaven/target/apis-jars/slingfeature-maven-plugin-test/base/base-javadoc] [INFO] javadoc: error - No modules, packages or classes specified. 1 error [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ {noformat} So it seems in case when _sourcesDir_ list in https://github.com/apache/sling-slingfeature-maven-plugin/blob/master/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java#L258-L260 is empty, both in Java 8 and Java 11 the _javadoc_ exec invocation fails, but the failure is not propagated up in Java 8, only in Java 11 case, hence only then it was visible from outside in SLING-8597 and the resulting [https://github.com/apache/sling-slingfeature-maven-plugin/commit/23e848409876cfa35b0ec8669612d73351f4e2e3] - possibly SLING-8681 could be extended into not calling _javadoc_ exec at all if _sourcesDir_ list is empty. It would result in not having javadocs jar produced in this case, but the jar produced in Java 8's case (when the error doesn't stop the build) is almost empty anyway: {noformat} $ unzip -l target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar Archive: target/apis-jars/slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-javadoc.jar Length Date Time Name --------- ---------- ----- ---- 201 09-09-2019 08:41 META-INF/MANIFEST.MF 0 09-09-2019 08:41 META-INF/ 0 09-09-2019 08:41 META-INF/maven/ 0 09-09-2019 08:41 META-INF/maven/org.apache.sling/ 0 09-09-2019 08:41 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/ 2110 09-09-2019 08:24 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/pom.xml 121 09-09-2019 08:41 META-INF/maven/org.apache.sling/slingfeature-maven-plugin-test/pom.properties --------- ------- 2432 7 files {noformat} > IT apis-jar-wrapped-flattened-classes fails > ------------------------------------------- > > Key: SLING-8682 > URL: https://issues.apache.org/jira/browse/SLING-8682 > Project: Sling > Issue Type: Bug > Components: Maven Plugins and Archetypes > Reporter: Carsten Ziegeler > Priority: Major > Fix For: slingfeature-maven-plugin 1.1.2 > > > With the correction of subpackage handling in SLING-8681 the > apis-jar-wrapped-flattened-classes fails now. > This might be a bug in our api handling code as the javadoc command does not > get a source -- This message was sent by Atlassian Jira (v8.3.2#803003)