1+ import org.javamodularity.moduleplugin.extensions.ModularityExtension
2+
13plugins {
24 `java- library`
35 `maven- publish`
@@ -8,6 +10,28 @@ plugins {
810 id(" com.netflix.nebula.maven-publish" ) version " 20.3.0"
911 id(" com.netflix.nebula.publish-verification" ) version " 20.3.0"
1012 id(" io.github.gradle-nexus.publish-plugin" ) version " 1.3.0"
13+ id(" org.javamodularity.moduleplugin" ) version " 1.8.12"
14+ }
15+
16+ tasks.named<Jar >(" javadocJar" ) {
17+ exclude(" module-info.class" )
18+ }
19+
20+ tasks.named<Jar >(" sourcesJar" ) {
21+ dependsOn(" compileModuleInfoJava" )
22+ exclude(" module-info.class" )
23+ }
24+
25+ tasks.named<JavaCompile >(" compileJava" ) {
26+ options.release.set(null as Int? )
27+ }
28+
29+ configure<ModularityExtension > {
30+ mixedJavaRelease(8 )
31+ }
32+
33+ tasks.named<JavaCompile >(" compileModuleInfoJava" ) {
34+ options.release.set(null as Int? )
1135}
1236
1337repositories {
@@ -35,8 +59,7 @@ dependencies {
3559 api(" com.coverity.security:coverity-escapers:1.1.1" )
3660 api(" com.martiansoftware:jsap:2.1" )
3761 api(" commons-io:commons-io:2.11.0" )
38- " java11Api" (" commons-io:commons-io:2.11.0" )
39- api(" org.codehaus.mojo:animal-sniffer-annotations:1.23" )
62+ java11SourceSet.apiConfigurationName(" commons-io:commons-io:2.11.0" )
4063 testImplementation(" commons-fileupload:commons-fileupload:1.5" )
4164 testImplementation(" org.junit.jupiter:junit-jupiter:5.8.1" )
4265 testImplementation(" org.junit.jupiter:junit-jupiter-params" )
@@ -45,13 +68,25 @@ dependencies {
4568 testImplementation(" org.mockito:mockito-core:4.0.0" )
4669}
4770
71+ tasks.named<JavaCompile >(java11SourceSet.compileJavaTaskName) {
72+ options.release.set(9 )
73+ }
74+
75+ tasks.named<Jar >(" jar" ) {
76+ into(" META-INF/versions/11" ) {
77+ from(java11SourceSet.output)
78+ }
79+ manifest.attributes(
80+ Pair (" Multi-Release" , " true" )
81+ )
82+
83+ inputs.files(tasks.named(java11SourceSet.compileJavaTaskName).map { it.outputs.files })
84+ }
85+
4886group = " io.github.pixee"
4987version = " 1.0.7"
5088description = " java-security-toolkit"
5189
52- tasks.compileJava {
53- options.release.set(11 )
54- }
5590
5691extensions.getByType< nebula.plugin.contacts.ContactsExtension > ().run {
5792 addPerson(
@@ -107,4 +142,15 @@ publishing {
107142
108143tasks.test {
109144 useJUnitPlatform()
110- }
145+ extensions.configure(org.javamodularity.moduleplugin.extensions.TestModuleOptions ::class ) {
146+ // Avoid modules in tests so we can test against Java/JDK 8.
147+ setRunOnClasspath(true )
148+ }
149+ }
150+
151+ tasks.compileTestJava {
152+ extensions.configure(org.javamodularity.moduleplugin.extensions.CompileTestModuleOptions ::class ) {
153+ // Avoid modules in tests so we can test against Java/JDK 8.
154+ setCompileOnClasspath(true )
155+ }
156+ }
0 commit comments