diff --git a/Jenkinsfile b/Jenkinsfile index 9066098..51cbef6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,39 +3,39 @@ pipeline { stages { stage('Gradle') { steps { - withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { - sh ''' - chmod +x gradlew - ./gradlew build -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD - ''' - } - } - } - stage('Publish to Maven') { - steps { - withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { - sh ''' - chmod +x gradlew - ./gradlew publish -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD - ''' - } - } - } - stage('Archive') { - steps { - archiveArtifacts artifacts: 'build/libs/', followSymlinks: false - } - } - stage('discord') { - when { - anyOf { - branch 'main' - branch 'master' + withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { + sh ''' + chmod +x gradlew + ./gradlew build -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD + ''' } } - steps { - discordSend description: "Build: ${BUILD_NUMBER}", showChangeset: true, result: currentBuild.currentResult, title: currentBuild.fullProjectName, webhookURL: env.discordwebhook - } + } + } + stage('Publish to Maven') { + steps { + withCredentials([usernamePassword(credentialsId: 'alttd-publish-user', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { + sh ''' + chmod +x gradlew + ./gradlew :api:publish -PalttdDevPublishUser=$USERNAME -PalttdDevPublishPass=$PASSWORD + ''' + } + } + } + stage('Archive') { + steps { + archiveArtifacts artifacts: 'plugin/build/libs/DataLockLib*.jar, api/build/libs/DataLockLibApi*.jar', followSymlinks: false + } + } + stage('discord') { + when { + anyOf { + branch 'main' + branch 'master' + } + } + steps { + discordSend description: "Build: ${BUILD_NUMBER}", showChangeset: true, result: currentBuild.currentResult, title: currentBuild.fullProjectName, webhookURL: env.discordwebhook } } } diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 61118f8..dd2653e 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -1,31 +1,28 @@ plugins { - `maven-publish` + id("java-library") + id("maven-publish") } -dependencies { - compileOnly("io.papermc.paper:paper-api:1.21.6-R0.1-SNAPSHOT") -} - -tasks { - jar { - enabled = true - } +// Configure API-specific settings +base { + archivesName.set("DataLockLibApi") } publishing { publications { create("mavenJava") { + artifactId = "api" from(components["java"]) } } - repositories{ + repositories { maven { name = "nexus" url = uri("https://repo.alttd.com/repository/alttd-snapshot/") credentials { - username = project.property("alttdDevPublishUser") as String - password = project.property("alttdDevPublishPass") as String + username = project.findProperty("alttdDevPublishUser")?.toString() + password = project.findProperty("alttdDevPublishPass")?.toString() } } } diff --git a/build.gradle.kts b/build.gradle.kts index c55fd86..8ca01b7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ + plugins { id("java") - id("maven-publish") } allprojects { @@ -10,41 +10,21 @@ allprojects { } subprojects { - apply() - apply(plugin = "maven-publish") + apply(plugin = "java-library") java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } -} -tasks { - jar { - enabled = true - } -} - -publishing { - publications { - create("mavenJava") { - from(components["java"]) - } + dependencies { + compileOnly("io.papermc.paper:paper-api:1.21.6-R0.1-SNAPSHOT") } - repositories{ - maven { - name = "nexus" - url = uri("https://repo.alttd.com/repository/alttd-snapshot/") - credentials { - username = project.property("alttdDevPublishUser") as String - password = project.property("alttdDevPublishPass") as String - } + tasks { + jar { + from(sourceSets.main.get().output) } } } - -dependencies { - compileOnly("io.papermc.paper:paper-api:1.21.6-R0.1-SNAPSHOT") -} diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 3d6d088..b611fef 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -1,56 +1,23 @@ -import java.io.ByteArrayOutputStream -import java.io.FileOutputStream -import java.net.URL - plugins { - `maven-publish` - id("net.minecrell.plugin-yml.bukkit") version "0.5.1" - id("xyz.jpenilla.run-paper") version "1.0.6" + id("java-library") + id("net.minecrell.plugin-yml.bukkit") version "0.6.0" // Plugin for generating plugin.yml } dependencies { - implementation(project(":api")) // API - compileOnly("io.papermc.paper:paper-api:1.21.6-R0.1-SNAPSHOT") + implementation(project(":api")) } -tasks { - - jar { - enabled = true - } - +// Plugin-specific configurations +base { + archivesName.set("DataLockLib") } +// Bukkit plugin configuration bukkit { name = rootProject.name - main = "$group.${rootProject.name}" - version = gitCommit() + main = "${project.group}.${rootProject.name}" apiVersion = "1.21" authors = listOf("Teriuihi") -} - -fun gitCommit(): String { - val os = ByteArrayOutputStream() - project.exec { - isIgnoreExitValue = true - commandLine = "git rev-parse --short HEAD".split(" ") - standardOutput = os - } - return String(os.toByteArray()).trim() -} - -fun download(link: String, path: File) { - URL(link).openStream().use { input -> - FileOutputStream(path).use { output -> - input.copyTo(output) - } - } -} - -bukkit { - name = rootProject.name - main = "$group.${rootProject.name}" - version = gitCommit() - apiVersion = "1.21" - authors = listOf("akastijn") + description = project.description + version = project.version.toString() } diff --git a/settings.gradle.kts b/settings.gradle.kts index db70fa3..f35d863 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,8 +1,5 @@ rootProject.name = "DataLockLib" -val nexusUser = providers.gradleProperty("alttdDevPublishUser").get() -val nexusPass = providers.gradleProperty("alttdDevPublishPass").get() - include(":api") include(":plugin") @@ -20,5 +17,9 @@ dependencyResolutionManagement { pluginManagement { repositories { gradlePluginPortal() + maven { + name = "papermc" + url = uri("https://repo.papermc.io/repository/maven-public/") + } } }