@@ -10,7 +10,8 @@ plugins {
1010 id(" me.modmuss50.mod-publish-plugin" ) version " 0.8.4"
1111 `maven- publish`
1212 signing
13- id(" dev.isxander.secrets" ) version " 0.1.0"
13+ id(" dev.isxander.secrets" )
14+ id(" com.gradleup.nmcp" )
1415 id(" org.ajoberstar.grgit" ) version " 5.3.2"
1516}
1617
@@ -59,6 +60,13 @@ stonecutter {
5960 " float" else " double"
6061 )
6162
63+ fun String.propDefined () = project.findProperty(this )?.toString()?.isNotBlank() ? : false
64+
65+ constants {
66+ put(" mod-menu" , " deps.modMenu" .propDefined())
67+ put(" controlify" , " deps.controlify" .propDefined())
68+ }
69+
6270}
6371
6472repositories {
@@ -76,14 +84,6 @@ repositories {
7684 forRepository { maven(" https://maven.parchmentmc.org" ) }
7785 filter { includeGroup(" org.parchmentmc.data" ) }
7886 }
79- exclusiveContent {
80- forRepository { maven(" https://api.modrinth.com/maven" ) }
81- filter { includeGroup(" maven.modrinth" ) }
82- }
83- exclusiveContent {
84- forRepository { maven(" https://cursemaven.com" ) }
85- filter { includeGroup(" curse.maven" ) }
86- }
8787}
8888
8989dependencies {
@@ -115,7 +115,9 @@ tasks.javadoc {
115115}
116116
117117kotlin {
118- // jvmToolchain(modstitch.javaVersion)
118+ jvmToolchain {
119+ languageVersion = modstitch.javaVersion.map { JavaLanguageVersion .of(it) }
120+ }
119121}
120122
121123tasks.register(" releaseMod" ) {
@@ -186,26 +188,58 @@ publishMods {
186188publishing {
187189 publications {
188190 create<MavenPublication >(" mod" ) {
191+ from(components[" java" ])
192+
189193 groupId = " dev.isxander"
190194 artifactId = " zoomify"
191-
192- from(components[" java" ])
195+ version = modstitch.metadata.modVersion.get()
196+
197+ pom {
198+ name = modstitch.metadata.modName
199+ description = modstitch.metadata.modDescription
200+ url = " https://www.isxander.dev/projects/zoomify"
201+ licenses {
202+ license {
203+ name = " LGPL-3.0-or-later"
204+ url = " https://www.gnu.org/licenses/lgpl-3.0.en.html"
205+ }
206+ }
207+ developers {
208+ developer {
209+ id = " isXander"
210+ name = " Xander"
211+ 212+ }
213+ }
214+ scm {
215+ url = " https://github.com/isXander/Zoomify"
216+ connection = " scm:git:git//github.com/isXander/Zoomify.git"
217+ developerConnection
= " scm:git:ssh://[email protected] /isXander/Zoomify.git" 218+ }
219+ }
193220 }
194221 }
195-
196- repositories {
197- val username = " XANDER_MAVEN_USER" .let { System .getenv(it) ? : findProperty(it) }?.toString()
198- val password = " XANDER_MAVEN_PASS" .let { System .getenv(it) ? : findProperty(it) }?.toString()
199- if (username != null && password != null ) {
200- maven(url = " https://maven.isxander.dev/releases" ) {
201- name = " XanderReleases"
202- credentials {
203- this .username = username
204- this .password = password
205- }
222+ }
223+ val signingKeyProvider = secrets.gradleProperty(" signing.secretKey" )
224+ val signingPasswordProvider = secrets.gradleProperty(" signing.password" )
225+ signing {
226+ sign(publishing.publications[" mod" ])
227+ }
228+ // not configuration cache friendly, but neither is the whole of signing plugin
229+ // this plugin does not support lazy configuration of signing keys
230+ gradle.taskGraph.whenReady {
231+ val willSign = allTasks.any { it.name.startsWith(" sign" ) }
232+ if (willSign) {
233+ signing {
234+ val signingKey = signingKeyProvider.orNull
235+ val signingPassword = signingPasswordProvider.orNull
236+
237+ isRequired = signingKey != null && signingPassword != null
238+ if (isRequired) {
239+ useInMemoryPgpKeys(signingKey, signingPassword)
240+ } else {
241+ logger.error(" Signing keys not found; skipping signing!" )
206242 }
207- } else {
208- println (" Xander Maven credentials not satisfied." )
209243 }
210244 }
211245}
0 commit comments