Skip to content

Commit

Permalink
Switch to maven central (#51)
Browse files Browse the repository at this point in the history
* Switch to maven central

* Adjust java version

* Fix release type not detected
  • Loading branch information
rainbowdashlabs authored Aug 21, 2023
1 parent 557bcd1 commit 2728022
Show file tree
Hide file tree
Showing 7 changed files with 161 additions and 82 deletions.
17 changes: 11 additions & 6 deletions .github/workflows/publish_to_nexus.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
name: Publish to Nexus
name: Publish

on:
workflow_dispatch:
push:
branches:
- main
- dev*
- feature/*
- fix/*

jobs:
build:
publish-central:
environment: build
runs-on: ubuntu-latest
name: Publish to Maven Central

steps:
- uses: actions/checkout@v3
Expand All @@ -23,8 +26,10 @@ jobs:
run: ./gradlew --build-cache build
- name: Test with Gradle
run: ./gradlew test
- name: Publish to eldonexus
run: ./gradlew publishMavenPublicationToEldoNexusRepository
- name: Publish to Maven Central
run: ./gradlew publish -PforceSign=true
env:
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
ORG_GRADLE_PROJECT_sonatypeUsername: "${{ secrets.SONATYPE_USERNAME }}"
ORG_GRADLE_PROJECT_sonatypePassword: "${{ secrets.SONATYPE_PASSWORD }}"
ORG_GRADLE_PROJECT_rainbowdashlabsSigningKey: "${{ secrets.RAINBOWDASHLABS_SIGN_KEY }}"
ORG_GRADLE_PROJECT_rainbowdashlabsSigningPassword: "${{ secrets.RAINBOWDASHLABS_GPG_PASSWORD }}"
154 changes: 85 additions & 69 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
import com.diffplug.gradle.spotless.SpotlessPlugin
import de.chojo.PublishData
import net.kyori.indra.IndraExtension
import net.kyori.indra.IndraPlugin
import net.kyori.indra.IndraPublishingPlugin

plugins {
java
`maven-publish`
`java-library`
id("com.diffplug.spotless") version "6.19.0"
id("de.chojo.publishdata") version "1.2.4"
alias(libs.plugins.spotless)
alias(libs.plugins.publishdata)
alias(libs.plugins.indra.core)
alias(libs.plugins.indra.publishing)
alias(libs.plugins.indra.sonatype)
jacoco
}
publishData {
useEldoNexusRepos(false)
publishingVersion = "1.2.0"
}
version = publishData.getVersion()

description = "Module for serialization on Spigot and Paper based servers"
group = "de.eldoria.jacksonbukkit"
version = "1.2.0"

val publicProjects = setOf("core", "bukkit", "paper", "jackson-bukkit")

Expand All @@ -25,7 +36,6 @@ allprojects {
plugin<JavaLibraryPlugin>()
plugin<SpotlessPlugin>()
plugin<JavaPlugin>()
plugin<MavenPublishPlugin>()
plugin<PublishData>()
plugin<JacocoPlugin>()
}
Expand Down Expand Up @@ -55,14 +65,6 @@ allprojects {
testImplementation("org.assertj:assertj-core:3.24.2")
}

java {
withJavadocJar()
withJavadocJar()
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}

spotless {
java {
licenseHeaderFile(rootProject.file("HEADER.txt"))
Expand All @@ -74,56 +76,6 @@ allprojects {
toolVersion = "0.8.10"
}


publishData {
useEldoNexusRepos()
publishComponent("java")
}

if (publicProjects.contains(project.name)) {

publishing {
publications.create<MavenPublication>("maven") {
publishData.configurePublication(this)
pom {
url.set("https://github.com/eldoriarpg/jackson-bukkit")
developers {
developer {
name.set("Florian Fülling")
url.set("https://github.com/rainbowdashlabs")
organization.set("EldoriaRPG")
organizationUrl.set("https://github.com/eldoriarpg")
}
developer {
name.set("Yannick Lamprecht")
url.set("https://github.com/yannicklamprecht")
}
}
licenses {
license {
name.set("MIT")
url.set("https://github.com/eldoriarpg/bukkit-jackson/blob/main/LICENSE.md")
}
}
}
}

repositories {
maven {
authentication {
credentials(PasswordCredentials::class) {
username = System.getenv("NEXUS_USERNAME")
password = System.getenv("NEXUS_PASSWORD")
}
}

setUrl(publishData.getRepository())
name = "EldoNexus"
}
}
}
}

tasks {
compileJava {
options.encoding = "UTF-8"
Expand Down Expand Up @@ -177,16 +129,80 @@ allprojects {
}
}

fun configureIndra(extension: IndraExtension) {
extension.javaVersions {
target(17)
testWith(17)
}

extension.github("eldoriarpg", "jackson-bukkit") {
ci(true)
}

extension.mitLicense()

extension.signWithKeyFromPrefixedProperties("rainbowdashlabs")

extension.configurePublications {
pom {
developers {
developer {
id.set("rainbowdashlabs")
name.set("Florian Fülling")
email.set("mail@chojo.dev")
url.set("https://github.com/rainbowdashlabs")
}
developer {
id.set("yannicklamprecht")
name.set("Yannick Lamprecht")
url.set("https://github.com/yannicklamprecht")
}
}
}
}

}

subprojects {
apply {
// We want to apply several plugins to subprojects
plugin<JavaPlugin>()
plugin<SpotlessPlugin>()
plugin<PublishData>()
plugin<JavaLibraryPlugin>()
}
if (project.name in publicProjects) {
apply {
plugin<MavenPublishPlugin>()
plugin<IndraPlugin>()
plugin<IndraPublishingPlugin>()
plugin<SigningPlugin>()
}

indra {
configureIndra(this)
}
}
}

indra {
configureIndra(this)
}

indraSonatype {
useAlternateSonatypeOSSHost("s01")
}

fun applyJavaDocOptions(options: MinimalJavadocOptions) {
val javaDocOptions = options as StandardJavadocDocletOptions
javaDocOptions.links(
"https://javadoc.io/doc/com.google.code.findbugs/jsr305/latest/",
"https://javadoc.io/doc/org.jetbrains/annotations/latest/",
"https://docs.oracle.com/en/java/javase/${java.toolchain.languageVersion.get().asInt()}/docs/api/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-core/latest/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/latest",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/latest",
"https://jd.papermc.io/paper/1.19/"
"https://javadoc.io/doc/com.google.code.findbugs/jsr305/latest/",
"https://javadoc.io/doc/org.jetbrains/annotations/latest/",
"https://docs.oracle.com/en/java/javase/${java.toolchain.languageVersion.get().asInt()}/docs/api/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-core/latest/",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/latest",
"https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/latest",
"https://jd.papermc.io/paper/1.19/"
)
}

Expand Down
2 changes: 2 additions & 0 deletions bukkit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
description = "Module for serialization on Spigot based servers"

dependencies {
api(project(":core"))
compileOnly("org.spigotmc", "spigot-api", "1.13.2-R0.1-SNAPSHOT")
Expand Down
1 change: 1 addition & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
description = "Core module containing shared logic"
dependencies {
compileOnly("org.spigotmc", "spigot-api", "1.20-R0.1-SNAPSHOT")
testImplementation("org.spigotmc", "spigot-api", "1.20-R0.1-SNAPSHOT")
Expand Down
2 changes: 2 additions & 0 deletions paper/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
description = "Module for serialization on Paper based servers"

dependencies {
api(project(":core"))
compileOnly("io.papermc.paper", "paper-api", "1.20-R0.1-SNAPSHOT")
Expand Down
61 changes: 54 additions & 7 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,62 @@
rootProject.name = "jackson-bukkit"

pluginManagement{
repositories{
include("bukkit")
include("core")
include("paper")
include("testing")
include("1.16-testing")

pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
maven("https://eldonexus.de/repository/maven-public/")
maven("https://repo.papermc.io/repository/maven-public/")
}
}
include("bukkit")
include("core")
include("paper")
include("testing")
include("1.16-testing")

plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version ("0.6.0")
}


dependencyResolutionManagement {
versionCatalogs {
create("libs") {
// plugins
plugin("spotless", "com.diffplug.spotless").version("6.20.0")
plugin("publishdata", "de.chojo.publishdata").version("1.2.5")

version("indra", "3.1.2")
plugin("indra-core", "net.kyori.indra").versionRef("indra")
plugin("indra-publishing", "net.kyori.indra.publishing").versionRef("indra")
plugin("indra-sonatype", "net.kyori.indra.publishing.sonatype").versionRef("indra")

version("jackson", "2.14.2")
library("jackson-core", "com.fasterxml.jackson.core", "jackson-core").versionRef("jackson")
library("jackson-databind", "com.fasterxml.jackson.core", "jackson-databind").versionRef("jackson")
bundle("jackson", listOf("jackson-core", "jackson-databind"))

}

create("testlibs") {
version("jackson", "2.14.2")
// jackson testing
library("jackson-databind", "com.fasterxml.jackson.core", "jackson-databind").versionRef("jackson")
library("jackson-dataformat-yaml", "com.fasterxml.jackson.dataformat", "jackson-dataformat-yaml").versionRef("jackson")
library("jackson-dataformat-toml", "com.fasterxml.jackson.dataformat", "jackson-dataformat-toml").versionRef("jackson")
bundle("jackson", listOf("jackson-databind", "jackson-dataformat-yaml", "jackson-dataformat-toml"))
version("junit", "5.9.3")

library("junit-jupiter-core", "org.junit.jupiter", "junit-jupiter").versionRef("junit")
library("junit-jupiter-engine", "org.junit.jupiter", "junit-jupiter-engine").versionRef("junit")
library("junit-jupiter-api", "org.junit.jupiter", "junit-jupiter-api").versionRef("junit")
library("junit-params", "org.junit.jupiter", "junit-jupiter-params").versionRef("junit")

library("mockito", "org.junit.jupiter", "junit-jupiter-params").version("5.2.0")
library("assertj-core", "org.junit.jupiter", "junit-jupiter-params").version("3.24.2")

bundle("unittests", listOf("junit-jupiter-core", "junit-jupiter-engine", "junit-jupiter-api", "junit-params", "mockito", "assertj-core"))
}
}
}
6 changes: 6 additions & 0 deletions testing/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,9 @@ dependencies {
implementation("org.junit.jupiter:junit-jupiter-api:5.9.3")
implementation("org.assertj:assertj-core:3.24.2")
}

java{
toolchain{
languageVersion.set(JavaLanguageVersion.of(17))
}
}

0 comments on commit 2728022

Please sign in to comment.