diff --git a/build.gradle b/build.gradle index e97d50743..a414c95b7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,62 +1,14 @@ import org.apache.tools.ant.filters.ReplaceTokens -import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { - id 'java-library' - id 'maven-publish' - id 'com.gradleup.shadow' version '8.3.5' - id "org.jetbrains.kotlin.jvm" version "2.0.21" + id 'org.mvplugins.multiverse-plugin' version '1.0.1' + id 'org.mvplugins.kotlin-test-only' version '1.0.1' } -version = System.getenv('GITHUB_VERSION') ?: 'local' group = 'org.mvplugins.multiverse.core' description = 'Multiverse-Core' -compileJava { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} - -compileTestJava { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} - -compileTestKotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - javaParameters.set(true) - } -} - repositories { - mavenLocal() - mavenCentral() - - maven { - url = uri('https://hub.spigotmc.org/nexus/content/repositories/snapshots/') - } - - maven { - url = uri('https://repo.onarandombox.com/content/groups/public') - } - - maven { - url = uri('https://hub.spigotmc.org/nexus/content/groups/public/') - } - - maven { - url = uri('https://jitpack.io') - } - - maven { - url = uri('https://repo.minebench.de/') - } - - maven { - url = uri('https://repo.maven.apache.org/maven2/') - } - maven { name = 'aikar repo' url = uri('https://repo.aikar.co/content/groups/aikar/') @@ -71,30 +23,14 @@ repositories { name = "helpchatRepoReleases" url = uri("https://repo.helpch.at/releases/") } - - maven { - name = 'papermc repo' - url = 'https://repo.papermc.io/repository/maven-public/' - } } -configurations { - // Add configuration for server API - compileOnly.extendsFrom serverApi - runtimeClasspath.extendsFrom serverApi - - // Add configuration for external plugins - implementation.extendsFrom externalPlugin - - // Add configuration for dependencies that will be included in fat jar - compileClasspath.extendsFrom shadowed - testCompileClasspath.extendsFrom shadowed - testRuntimeClasspath.extendsFrom shadowed +configure(apiDependencies) { + serverApiVersion = '1.18.2-R0.1-SNAPSHOT' + mockBukkitServerApiVersion = '1.21' } dependencies { - serverApi 'org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT' - // Economy externalPlugin('com.github.MilkBowl:VaultAPI:1.7.1') { exclude group: 'org.bukkit', module: 'bukkit' @@ -129,104 +65,11 @@ dependencies { shadowed 'io.papermc:paperlib:1.0.8' // Tests - testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21' - testImplementation 'org.mockbukkit.mockbukkit:mockbukkit-v1.21:4.24.1' testImplementation('com.googlecode.json-simple:json-simple:1.1.1') { exclude group: 'junit', module: 'junit' } - testImplementation 'org.jetbrains.kotlin:kotlin-test' - testImplementation 'com.natpryce:hamkrest:1.8.0.1' - testImplementation 'org.mockito.kotlin:mockito-kotlin:4.1.0' - - // Annotation Processors - annotationProcessor 'org.glassfish.hk2:hk2-metadata-generator:3.0.3' - testAnnotationProcessor 'org.glassfish.hk2:hk2-metadata-generator:3.0.3' -} - - -java { - withSourcesJar() - withJavadocJar() -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' -} - -tasks.withType(Javadoc).configureEach { - options.encoding = 'UTF-8' -} - - -configurations { - [apiElements, runtimeElements].each { - it.outgoing.artifacts.removeIf { it.buildDependencies.getDependencies(null).contains(jar) } - it.outgoing.artifact(shadowJar) - } } - -publishing { - publications { - maven(MavenPublication) { - from components.java - - pom.withXml { - Node pomNode = asNode() - - // Remove Kotlin dependency - pomNode.dependencies.'*'.findAll() { - it.groupId.text() == 'org.jetbrains.kotlin' - }.each() { - it.parent().remove(it) - } - - // Switch runtime deps to provided - pomNode.dependencies.'*'.findAll() { - it.scope.text() == 'runtime' - }.each() { - it.scope*.value = 'provided' - } - - // Add spigot api to pom - project.configurations.serverApi.allDependencies.each { dependency -> - pomNode.dependencies[0].appendNode("dependency").with { - it.appendNode("groupId", dependency.group) - it.appendNode("artifactId", dependency.name) - it.appendNode("version", dependency.version) - it.appendNode("scope", "provided") - } - } - } - } - } - repositories { - maven { - name = "GitHubPackages" - url = "https://maven.pkg.github.com/Multiverse/Multiverse-Core" - credentials { - username = System.getenv("GITHUB_ACTOR") - password = System.getenv("GITHUB_TOKEN") - } - } - maven { - name = "multiverse" - def releasesRepoUrl = "https://repo.dumptruckman.com/multiverse-releases" - def snapshotsRepoUrl = "https://repo.dumptruckman.com/multiverse-snapshots" - url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl - credentials(PasswordCredentials) - } - - maven { - // todo: remove before mv5 release - name = "multiverseBeta" - url = "https://repo.c0ding.party/multiverse-beta" - credentials(PasswordCredentials) - } - } -} - - ext.bitlyAccessToken = System.getenv('BITLY_ACCESS_TOKEN') ?: 'bitly-access-token' task prepareSource(type: Sync) { @@ -238,45 +81,6 @@ task prepareSource(type: Sync) { ]) } -compileJava { - source = prepareSource.outputs -} -tasks.withType(JavaCompile) { - configure(options) { - options.compilerArgs << '-Aorg.glassfish.hk2.metadata.location=META-INF/hk2-locator/Multiverse-Core' - } -} - -compileKotlin { - // We're not using Kotlin in the plugin itself, just tests! - enabled = false -} -configurations.findAll { !it.name.startsWith('test') }.each { - it.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8' -} - -processResources { - def props = [version: "${project.version}"] - inputs.properties props - filteringCharset 'UTF-8' - filesMatching('plugin.yml') { - expand props - } - - // This task should never be skipped. The tests depend on this having been run but we want the new version number - // that is created after tests are run and before we run again to publish. - outputs.upToDateWhen { false } -} - - -javadoc { - source = sourceSets.main.allJava - classpath = configurations.compileClasspath -} - - -project.configurations.api.canBeResolved = true - shadowJar { relocate 'co.aikar', 'org.mvplugins.multiverse.external.acf' relocate 'com.dumptruckman.minecraft.util.Logging', 'org.mvplugins.multiverse.core.utils.CoreLogging' @@ -297,26 +101,24 @@ shadowJar { relocate 'org.intellij', 'org.mvplugins.multiverse.external.intellij' relocate 'org.jetbrains', 'org.mvplugins.multiverse.external.jetbrains' relocate 'io.papermc.lib', 'org.mvplugins.multiverse.external.paperlib' - - configurations = [project.configurations.shadowed] - - archiveClassifier.set('') - - dependencies { - exclude(dependency { - it.moduleGroup == 'org.jetbrains.kotlin' - }) - } - //classifier = '' } -build.dependsOn shadowJar -jar.enabled = false - -test { - useJUnitPlatform() +publishing { + repositories { + maven { + name = "GitHubPackages" + url = "https://maven.pkg.github.com/Multiverse/Multiverse-Core" + credentials { + username = System.getenv("GITHUB_ACTOR") + password = System.getenv("GITHUB_TOKEN") + } + } - testLogging { - exceptionFormat = 'full' + maven { + // todo: remove before mv5 release + name = "multiverseBeta" + url = "https://repo.c0ding.party/multiverse-beta" + credentials(PasswordCredentials) + } } } diff --git a/settings.gradle b/settings.gradle index 70e6b1537..ca8ae04a3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,9 @@ pluginManagement { repositories { gradlePluginPortal() + maven { + url = uri('https://repo.onarandombox.com/multiverse-releases') + } } }