apply plugin: 'java-library' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } modularity.inferModulePath.set(true) withSourcesJar() withJavadocJar() } jar { manifest { attributes('Implementation-Version': project.version) } duplicatesStrategy = DuplicatesStrategy.INCLUDE } tasks.withType(JavaCompile).configureEach { doFirst { options.fork = true options.forkOptions.jvmArgs += ['-Duser.language=en', '-Duser.country=US'] options.encoding = 'UTF-8' options.compilerArgs.add('-Xlint:all') // enforce presence of module-info.java options.compilerArgs.add("--module-version") options.compilerArgs.add(project.version as String) options.compilerArgs.add("--module-path") options.compilerArgs.add(classpath.asPath) classpath = files() } } tasks.withType(Javadoc).configureEach { doFirst { options.addStringOption('Xdoclint:none', '-quiet') options.encoding = 'UTF-8' } } tasks.withType(JavaExec).configureEach { doFirst { jvmArguments.add("--module-path") jvmArguments.add(classpath.asPath) classpath = files() } }