Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish javadoc for other picocli modules #1298

Closed
remkop opened this issue Jan 5, 2021 · 3 comments
Closed

Publish javadoc for other picocli modules #1298

remkop opened this issue Jan 5, 2021 · 3 comments
Labels
theme: module An issue or change related to JPMS modules type: doc 📘
Milestone

Comments

@remkop
Copy link
Owner

remkop commented Jan 5, 2021

As mentioned in #1296, the API Docs for the package picocli.groovy are not up-to-date: The Groovy classes were previously in the main picocli jar, now they are in a separate picocli-groovy jar. These javadoc pages are still there from when these classes were in the picocli jar.

This task is to publish Javadoc for the other jars, not just for the picocli jar, but for all of these:

  • picocli
  • picocli-codegen
  • picocli-groovy
  • picocli-shell-jline2
  • picocli-shell-jline3
  • picocli-spring-boot-starter

One idea to deal with this is to generate javadoc for each module and copy them to subdirectories of ${PROJECT-DIR}/build/docs/apidoc in the copyDocs task in build.gradle. This would leave them as independent sets of documents, so we need to link to their top-level pages from the user manual and project README.

An alternative idea is to treat the picocli modules like Java 9 Modules and use the Java 9+ javadoc tool to generate a single interlinked set of api documents for all picocli modules.

The latter idea would introduce a dependency on Java 9 or later. Currently only Java 8 is required to build picocli. I am not sure that I want to require Java 9+ to build the project. It would be good to explore if building a single integrated set of javadoc documents can be done optionally only if the current Java version is 9 or higher.

https://xy2401.com/local-docs/oracle/java/11/javadoc/javadoc-command.html#GUID-EFE927BC-DB00-4876-808C-ED23E1AAEF7D

http://tutorials.jenkov.com/java/modules.html#migrating-to-java-9
https://github.com/tfesenko/Java-Modules-JPMS-CheatSheet
https://www.oracle.com/corporate/features/understanding-java-9-modules.html

@remkop remkop added the theme: module An issue or change related to JPMS modules label Jan 5, 2021
@remkop
Copy link
Owner Author

remkop commented Jan 5, 2021

The io.freefair.aggregate-javadoc gradle plugin may also be useful. (See also this StackOverflow answer).

Index: build.gradle
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/build.gradle b/build.gradle
--- a/build.gradle	(date 1645498199134)
+++ b/build.gradle	(date 1645498199134)
@@ -19,11 +19,14 @@
         classpath "gradle.plugin.org.beryx:badass-jar:1.2.0"
         classpath 'biz.aQute.bnd:biz.aQute.bnd.gradle:6.1.0'
         classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.30.0"
+        classpath "io.freefair.gradle:maven-plugin:6.4.1"
     }
 }
 
 apply plugin: "org.beryx.jar"
 apply plugin: 'io.codearte.nexus-staging'
+apply plugin: 'io.freefair.aggregate-javadoc'
+apply plugin: 'io.freefair.javadoc-utf-8'
 
 if (System.getenv('MAVEN_OSS_USER')) { // on home system
     apply plugin: 'biz.aQute.bnd.builder'

To resolve the "package not visible" errors when building with Java 11, perhaps this is needed:

task javadocs(type: Javadoc) {
    source = sourceSets.main.java.srcDirs
    classpath = sourceSets.main.runtimeClasspath
    exclude '**/R.html', '**/R.*.html', '**/index.html'
}
javadoc.options.links += [
    'https://javadoc.io/doc/org.jline/jline/latest/'
]

Maybe need to check https://github.com/freefair/gradle-plugins/blob/master/maven-plugin/src/main/java/io/freefair/gradle/plugins/maven/javadoc/ResolveJavadocLinks.java

Raised issue freefair/gradle-plugins#486 for problem when building with Java 8.

Raised issue #487 for problem when building with Java 11.

@remkop
Copy link
Owner Author

remkop commented Feb 23, 2022

C:\apps\jdk-11\bin\javadoc.exe @C:\Users\remko\IdeaProjects\picocli3\build\tmp\aggregateJavadoc\javadoc.options
--module-path 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\libs\\picocli-4.7.0-SNAPSHOT.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\build\\libs\\picocli-groovy-4.7.0-SNAPSHOT.jarC:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal-jansi\\3.21.0\\27086834f4d9951f9c2c3b299782e114b56fcf51\\jline-terminal-jansi-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-console\\3.21.0\\1d46fe9d2fb766ff991f79c9050b02168c78d8b4\\jline-console-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-builtins\\3.21.0\\e90bfa5dc84615baa864f073000f80cdeb849720\\jline-builtins-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-reader\\3.21.0\\9cd5c76dd2a47e9e0e7ab39821c0f62fa46e8581\\jline-reader-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-style\\3.21.0\\97f09299c294d5cb97eeaaa77f8a48f308e11210\\jline-style-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal\\3.21.0\\47579f05a0002f9c561cb10dcf2f744976c49ac\\jline-terminal-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.fusesource.jansi\\jansi\\2.4.0\\321c614f85f1dea6bb08c1817c60d53b7f3552fd\\jansi-2.4.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter\\2.6.3\\1211af6e300c0584e01c7a9a75e585ac0aec6ea6\\spring-boot-starter-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-autoconfigure\\2.6.3\\8bf96f63e9479b5a1c17d1fa05b149bb5ed050e2\\spring-boot-autoconfigure-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot\\2.6.3\\f1127e8a70ba7b9f12581e79ea963b739059bf55\\spring-boot-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter-logging\\2.6.3\\86599127b1e69a6180014cbeed8297ba26e8c6aa\\spring-boot-starter-logging-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\jakarta.annotation\\jakarta.annotation-api\\1.3.5\\59eb84ee0d616332ff44aba065f3888cf002cd2d\\jakarta.annotation-api-1.3.5.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-context\\5.3.15\\80a12b7dcb3332fbd65c3649249fd35561ffc561\\spring-context-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-aop\\5.3.15\\195966e1f4260f89696e668856ebfd9a1bc76404\\spring-aop-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-beans\\5.3.15\\a88e2ccfe8b131bcff2e643b90d52f6d928e7369\\spring-beans-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-expression\\5.3.15\\362f36bbc4c4b46cc2e4f219df22d08945000c2\\spring-expression-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-core\\5.3.15\\e813c2311465672d3089fc7be8dbbadb04e64d6b\\spring-core-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.yaml\\snakeyaml\\1.29\\6d0cdafb2010f1297e574656551d7145240f6e25\\snakeyaml-1.29.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-to-slf4j\\2.17.1\\3619fd18278a1a895c1dca8c5be002768071a20e\\log4j-to-slf4j-2.17.1.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-jcl\\5.3.15\\88da960b4fcbd28621aea8b9911976adc06afce4\\spring-jcl-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\1.7.33\\d375aa1b98d34d5ddf73a3f19eaad66e98975b12\\slf4j-api-1.7.33.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.17.1\\d771af8e336e372fb5399c99edabe0919aeaf5b2\\log4j-api-2.17.1.jar'
-charset 'UTF-8'
-classpath 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\resources\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\build\\classes\\java\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.codehaus.groovy\\groovy-all\\2.4.21\\8e4f4c30dbb9123fbf703f256cd721bbac5c902a\\groovy-all-2.4.21.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline2\\build\\classes\\java\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\jline\\jline\\2.14.6\\c3aeac59c022bdc497c8c48ed86fa50450e4896a\\jline-2.14.6.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\build\\resources\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\ch.qos.logback\\logback-classic\\1.2.10\\f69d97ef3335c6ab82fc21dfb77ac613f90c1221\\logback-classic-1.2.10.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\jul-to-slf4j\\1.7.33\\53fd89b530d41b8f6744c754de1c9b02e82f2d7\\jul-to-slf4j-1.7.33.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\ch.qos.logback\\logback-core\\1.2.10\\5328406bfcae7bcdcc86810fcb2920d2c297170d\\logback-core-1.2.10.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\libs\\picocli-4.7.0-SNAPSHOT.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal-jansi\\3.21.0\\27086834f4d9951f9c2c3b299782e114b56fcf51\\jline-terminal-jansi-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-console\\3.21.0\\1d46fe9d2fb766ff991f79c9050b02168c78d8b4\\jline-console-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-builtins\\3.21.0\\e90bfa5dc84615baa864f073000f80cdeb849720\\jline-builtins-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-reader\\3.21.0\\9cd5c76dd2a47e9e0e7ab39821c0f62fa46e8581\\jline-reader-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-style\\3.21.0\\97f09299c294d5cb97eeaaa77f8a48f308e11210\\jline-style-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal\\3.21.0\\47579f05a0002f9c561cb10dcf2f744976c49ac\\jline-terminal-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.fusesource.jansi\\jansi\\2.4.0\\321c614f85f1dea6bb08c1817c60d53b7f3552fd\\jansi-2.4.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter\\2.6.3\\1211af6e300c0584e01c7a9a75e585ac0aec6ea6\\spring-boot-starter-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-autoconfigure\\2.6.3\\8bf96f63e9479b5a1c17d1fa05b149bb5ed050e2\\spring-boot-autoconfigure-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot\\2.6.3\\f1127e8a70ba7b9f12581e79ea963b739059bf55\\spring-boot-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter-logging\\2.6.3\\86599127b1e69a6180014cbeed8297ba26e8c6aa\\spring-boot-starter-logging-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\jakarta.annotation\\jakarta.annotation-api\\1.3.5\\59eb84ee0d616332ff44aba065f3888cf002cd2d\\jakarta.annotation-api-1.3.5.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-context\\5.3.15\\80a12b7dcb3332fbd65c3649249fd35561ffc561\\spring-context-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-aop\\5.3.15\\195966e1f4260f89696e668856ebfd9a1bc76404\\spring-aop-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-beans\\5.3.15\\a88e2ccfe8b131bcff2e643b90d52f6d928e7369\\spring-beans-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-expression\\5.3.15\\362f36bbc4c4b46cc2e4f219df22d08945000c2\\spring-expression-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-core\\5.3.15\\e813c2311465672d3089fc7be8dbbadb04e64d6b\\spring-core-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.yaml\\snakeyaml\\1.29\\6d0cdafb2010f1297e574656551d7145240f6e25\\snakeyaml-1.29.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-to-slf4j\\2.17.1\\3619fd18278a1a895c1dca8c5be002768071a20e\\log4j-to-slf4j-2.17.1.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-jcl\\5.3.15\\88da960b4fcbd28621aea8b9911976adc06afce4\\spring-jcl-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\1.7.33\\d375aa1b98d34d5ddf73a3f19eaad66e98975b12\\slf4j-api-1.7.33.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.17.1\\d771af8e336e372fb5399c99edabe0919aeaf5b2\\log4j-api-2.17.1.jar'
-d 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\docs\\javadoc'
-docencoding 'UTF-8'
-doctitle 'picocli 4.7.0-SNAPSHOT API'
-encoding 'UTF-8'
-link 'https://docs.oracle.com/en/java/javase/11/docs/api/'
-link 'http://docs.groovy-lang.org/2.4.9/html/gapi'
-notimestamp
-use
-splitindex
--frames
-quiet
-overview 'C:\\Users\\remko\\IdeaProjects\\picocli3\\src\\main\\java\\overview.html'
-windowtitle 'picocli 4.7.0-SNAPSHOT API'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\src\\main\\java\\picocli\\AutoComplete.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\src\\main\\java\\picocli\\CommandLine.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\src\\main\\java\\picocli\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\AbstractCommandSpecProcessor.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\AnnotatedElementHolder.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\AnnotationValidator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\CompileTimeTypeInfo.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\CompletionCandidatesMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\DefaultValueProviderMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\ITypeMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\MixinInfo.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\ParameterConsumerMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\TypeConverterMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\TypedMember.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\TypeUtil.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\annotation\\processing\\VersionProviderMetaData.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\DynamicProxyConfigGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\JniConfigGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\OutputFileMixin.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\AbstractCompositeGeneratorProcessor.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\AbstractGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\IGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\NativeImageConfigGeneratorProcessor.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\ProcessorUtil.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\ProxyConfigGen.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\ReflectConfigGen.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\processor\\ResourceConfigGen.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\ReflectionConfigGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\aot\\graalvm\\ResourceConfigGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\docgen\\manpage\\ManPageGenerator.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\docgen\\manpage\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\util\\Assert.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\util\\JulLogFormatter.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\util\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\src\\main\\java\\picocli\\codegen\\util\\Util.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\PicocliBaseScript.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\PicocliBaseScript2.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\PicocliScript.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\PicocliScript2.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\src\\main\\java\\picocli\\groovy\\PicocliScriptASTTransformation.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline2\\src\\main\\java\\picocli\\shell\\jline2\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline2\\src\\main\\java\\picocli\\shell\\jline2\\PicocliJLineCompleter.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\src\\main\\java\\picocli\\shell\\jline3\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\src\\main\\java\\picocli\\shell\\jline3\\PicocliCommands.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\src\\main\\java\\picocli\\shell\\jline3\\PicocliJLineCompleter.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\src\\main\\java\\picocli\\spring\\boot\\autoconfigure\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\src\\main\\java\\picocli\\spring\\boot\\autoconfigure\\PicocliAutoConfiguration.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\src\\main\\java\\picocli\\spring\\package-info.java'
'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\src\\main\\java\\picocli\\spring\\PicocliSpringFactory.java'

@remkop
Copy link
Owner Author

remkop commented Feb 24, 2022

It may be possible to do the compile tasks with Java 8, and the Javadoc tasks with Java 11, using Gradle's toolchain feature: https://blog.gradle.org/java-toolchains

Generating multi-module JPMS javadoc:

https://stackoverflow.com/questions/53973319/how-to-generate-javadoc-for-multiple-modules
https://stackoverflow.com/questions/49476559/java-9-error-not-in-a-module-on-the-module-source-path
http://openjdk.java.net/jeps/261

Potentially useful for dealing with non-modular dependencies:
https://medium.com/azulsystems/using-jlink-to-build-java-runtimes-for-non-modular-applications-9568c5e70ef4

--module-path 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\libs\\picocli-4.7.0-SNAPSHOT.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\libs\\picocli-codegen-4.7.0-SNAPSHOT.jar'
--module-source-path 'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules'
--module 'info.picocli,info.picocli.codegen'
-charset 'UTF-8'
-classpath 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\resources\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\resources\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\build\\classes\\groovy\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-groovy\\build\\resources\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\libs\\picocli-4.7.0-SNAPSHOT.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.codehaus.groovy\\groovy-all\\2.4.21\\8e4f4c30dbb9123fbf703f256cd721bbac5c902a\\groovy-all-2.4.21.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline2\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline2\\build\\resources\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\jline\\jline\\2.14.6\\c3aeac59c022bdc497c8c48ed86fa50450e4896a\\jline-2.14.6.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-shell-jline3\\build\\resources\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal-jansi\\3.21.0\\27086834f4d9951f9c2c3b299782e114b56fcf51\\jline-terminal-jansi-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-console\\3.21.0\\1d46fe9d2fb766ff991f79c9050b02168c78d8b4\\jline-console-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-builtins\\3.21.0\\e90bfa5dc84615baa864f073000f80cdeb849720\\jline-builtins-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-reader\\3.21.0\\9cd5c76dd2a47e9e0e7ab39821c0f62fa46e8581\\jline-reader-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-style\\3.21.0\\97f09299c294d5cb97eeaaa77f8a48f308e11210\\jline-style-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.jline\\jline-terminal\\3.21.0\\47579f05a0002f9c561cb10dcf2f744976c49ac\\jline-terminal-3.21.0.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.fusesource.jansi\\jansi\\2.4.0\\321c614f85f1dea6bb08c1817c60d53b7f3552fd\\jansi-2.4.0.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\build\\classes\\java\\main;C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-spring-boot-starter\\build\\resources\\main;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter\\2.6.3\\1211af6e300c0584e01c7a9a75e585ac0aec6ea6\\spring-boot-starter-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-autoconfigure\\2.6.3\\8bf96f63e9479b5a1c17d1fa05b149bb5ed050e2\\spring-boot-autoconfigure-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot\\2.6.3\\f1127e8a70ba7b9f12581e79ea963b739059bf55\\spring-boot-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework.boot\\spring-boot-starter-logging\\2.6.3\\86599127b1e69a6180014cbeed8297ba26e8c6aa\\spring-boot-starter-logging-2.6.3.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\jakarta.annotation\\jakarta.annotation-api\\1.3.5\\59eb84ee0d616332ff44aba065f3888cf002cd2d\\jakarta.annotation-api-1.3.5.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-context\\5.3.15\\80a12b7dcb3332fbd65c3649249fd35561ffc561\\spring-context-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-aop\\5.3.15\\195966e1f4260f89696e668856ebfd9a1bc76404\\spring-aop-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-beans\\5.3.15\\a88e2ccfe8b131bcff2e643b90d52f6d928e7369\\spring-beans-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-expression\\5.3.15\\362f36bbc4c4b46cc2e4f219df22d08945000c2\\spring-expression-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-core\\5.3.15\\e813c2311465672d3089fc7be8dbbadb04e64d6b\\spring-core-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.yaml\\snakeyaml\\1.29\\6d0cdafb2010f1297e574656551d7145240f6e25\\snakeyaml-1.29.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\ch.qos.logback\\logback-classic\\1.2.10\\f69d97ef3335c6ab82fc21dfb77ac613f90c1221\\logback-classic-1.2.10.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-to-slf4j\\2.17.1\\3619fd18278a1a895c1dca8c5be002768071a20e\\log4j-to-slf4j-2.17.1.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\jul-to-slf4j\\1.7.33\\53fd89b530d41b8f6744c754de1c9b02e82f2d7\\jul-to-slf4j-1.7.33.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.springframework\\spring-jcl\\5.3.15\\88da960b4fcbd28621aea8b9911976adc06afce4\\spring-jcl-5.3.15.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\ch.qos.logback\\logback-core\\1.2.10\\5328406bfcae7bcdcc86810fcb2920d2c297170d\\logback-core-1.2.10.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\1.7.33\\d375aa1b98d34d5ddf73a3f19eaad66e98975b12\\slf4j-api-1.7.33.jar;C:\\Users\\remko\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.17.1\\d771af8e336e372fb5399c99edabe0919aeaf5b2\\log4j-api-2.17.1.jar'
-d 'C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\docs\\javadoc'
-docencoding 'UTF-8'
-doctitle 'picocli 4.7.0-SNAPSHOT API'
-encoding 'UTF-8'
-link 'https://docs.oracle.com/en/java/javase/11/docs/api/'
-link 'http://docs.groovy-lang.org/2.4.9/html/gapi'
-use
-splitindex
--frames
-overview 'C:\\Users\\remko\\IdeaProjects\\picocli3\\src\\main\\java\\overview.html'
-notimestamp
-quiet
-windowtitle 'picocli 4.7.0-SNAPSHOT API'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli\\picocli\\AutoComplete.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli\\picocli\\CommandLine.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli\\picocli\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\AbstractCommandSpecProcessor.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\AnnotatedElementHolder.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\AnnotationValidator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\CompileTimeTypeInfo.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\CompletionCandidatesMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\DefaultValueProviderMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\ITypeMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\MixinInfo.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\ParameterConsumerMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\TypeConverterMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\TypedMember.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\TypeUtil.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\annotation\\processing\\VersionProviderMetaData.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\DynamicProxyConfigGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\JniConfigGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\OutputFileMixin.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\AbstractCompositeGeneratorProcessor.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\AbstractGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\IGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\NativeImageConfigGeneratorProcessor.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\ProcessorUtil.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\ProxyConfigGen.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\ReflectConfigGen.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\processor\\ResourceConfigGen.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\ReflectionConfigGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\aot\\graalvm\\ResourceConfigGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\docgen\\manpage\\ManPageGenerator.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\docgen\\manpage\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\util\\Assert.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\util\\JulLogFormatter.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\util\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.codegen\\picocli\\codegen\\util\\Util.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\PicocliBaseScript.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\PicocliBaseScript2.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\PicocliScript.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\PicocliScript2.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.groovy\\picocli\\groovy\\PicocliScriptASTTransformation.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.shell.jline2\\picocli\\shell\\jline2\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.shell.jline2\\picocli\\shell\\jline2\\PicocliJLineCompleter.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.shell.jline3\\picocli\\shell\\jline3\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.shell.jline3\\picocli\\shell\\jline3\\PicocliCommands.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.shell.jline3\\picocli\\shell\\jline3\\PicocliJLineCompleter.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.spring.boot\\picocli\\spring\\boot\\autoconfigure\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.spring.boot\\picocli\\spring\\boot\\autoconfigure\\PicocliAutoConfiguration.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.spring.boot\\picocli\\spring\\package-info.java'
'C:\\\Users\\remko\\IdeaProjects\\picocli3\\build\\tmp\\modules\\info.picocli.spring.boot\\picocli\\spring\\PicocliSpringFactory.java'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
theme: module An issue or change related to JPMS modules type: doc 📘
Projects
None yet
Development

No branches or pull requests

1 participant