@@ -6,6 +6,7 @@ import org.gradle.api.Project
66import org.gradle.api.publish.PublishingExtension
77import org.gradle.api.publish.maven.MavenPublication
88import org.gradle.plugins.signing.SigningExtension
9+ import org.gradle.api.JavaVersion
910
1011class KitPlugin implements Plugin<Project > {
1112 void apply (Project target ) {
@@ -35,7 +36,14 @@ class KitPlugin implements Plugin<Project> {
3536 androidLib. defaultConfig. buildConfigField(" String" , " VERSION_CODE" , ' \" ' + dateInt + ' \" ' )
3637 androidLib. buildTypes. release. minifyEnabled false
3738 androidLib. buildTypes. release. consumerProguardFiles ' consumer-proguard.pro'
38- androidLib. lintOptions. abortOnError true
39+ androidLib. lint. abortOnError true
40+
41+ // Add Java 17 compatibility
42+ androidLib. compileOptions {
43+ sourceCompatibility = 17
44+ targetCompatibility = 17
45+ }
46+
3947 androidLib. testOptions. unitTests. all { jvmArgs + = [' --add-opens' , ' java.base/java.lang=ALL-UNNAMED' ]
4048 jvmArgs + = [' --add-opens' , ' java.base/java.lang.reflect=ALL-UNNAMED' ]
4149 jvmArgs + = [' --add-opens' , ' java.base/java.util=ALL-UNNAMED' ]
@@ -48,6 +56,12 @@ class KitPlugin implements Plugin<Project> {
4856 target. apply(plugin : ' maven-publish' )
4957 target. apply(plugin : ' signing' )
5058
59+ // Configure publishing for AGP 8.x
60+ androidLib. publishing {
61+ singleVariant(" release" )
62+ singleVariant(" debug" )
63+ }
64+
5165 target. afterEvaluate {
5266 PublishingExtension publishing = target. extensions. findByName(' publishing' )
5367 publishing. publications. create(" release" , MavenPublication . class) {
@@ -142,20 +156,24 @@ class KitPlugin implements Plugin<Project> {
142156 def signingKey = System . getenv(" mavenSigningKeyId" )
143157 def signingPassword = System . getenv(" mavenSigningKeyPassword" )
144158
145- if (signingKey != null ) {
146- target . extensions . add( ' signing.keyId ' , signingKey)
147- target. extensions . add (' signing.password ' , signingPassword )
159+ // Updated signing approach for Gradle 8.x
160+ if (signingKey != null && signingPassword != null ) {
161+ target. plugins . apply (' signing' )
148162
149- SigningExtension signing = new SigningExtension (target)
150- signing. required = { target. gradle. taskGraph. hasTask(" publishReleasePublicationToMavenRepository" ) }
151- signing. useInMemoryPgpKeys(signingKey, signingPassword)
152- signing. sign publishing. publications. findByName(" release" )
163+ // Configure signing options
164+ target. signing {
165+ def required = target. provider {
166+ target. gradle. taskGraph. hasTask(" publishReleasePublicationToMavenRepository" )
167+ }
168+ setRequired(required)
169+ useInMemoryPgpKeys(signingKey, signingPassword)
170+ sign publishing. publications. findByName(" release" )
171+ }
153172 }
154173 }
155174
156175 // Publishing task aliases for simpler local development
157176 target. task(" publishLocal" ) { dependsOn " publishDebugPublicationToMavenLocal" }
158177 target. task(" publishReleaseLocal" ) { dependsOn " publishReleasePublicationToMavenLocal" }
159178 }
160- }
161-
179+ }
0 commit comments