SimplexCore/build.gradle
2022-04-16 16:53:12 -05:00

123 lines
3.6 KiB
Groovy

plugins {
id "java"
id "com.github.johnrengelman.shadow" version "7.1.2"
id 'maven-publish'
id 'signing'
}
java {
withJavadocJar()
withSourcesJar()
}
version project.properties["pluginVersion"]
targetCompatibility = sourceCompatibility = JavaVersion.VERSION_17
repositories {
mavenCentral()
maven { url "https://jitpack.io" }
maven { url "https://papermc.io/repo/repository/maven-public/" }
maven { url "https://os1.oss.sonatype.org/content/groups/public/" }
}
dependencies {
//provided
compileOnly "io.papermc.paper:paper-api:1.18-R0.1-SNAPSHOT"
//compile
implementation "org.jetbrains:annotations:23.0.0"
implementation "org.reflections:reflections:0.10.2"
}
shadowJar {
classifier project.properties["pluginJarClassifier"].toString()
baseName project.properties["pluginName"].toString()
//shading and relocation
relocate "org.reflections", "${project.properties["pluginMainPackage"]}.shaded.reflections"
relocate "javassist", "${project.properties["pluginMainPackage"]}.shaded.jassist"
}
apply plugin: 'maven-publish'
apply plugin: 'signing'
signing {
sign configurations.archives
}
group = "io.github.simplexdevelopment"
archivesBaseName = "simplex-core"
version = "1.0.0"
processResources {
//update resources when building
doFirst {
file("$buildDir/resources/main").listFiles().each {
it.delete()
}
}
//define variables
expand(
"pluginVersion": project.version,
"pluginName": project.properties["pluginName"],
"pluginMain": "${project.properties["pluginMainPackage"]}.${project.properties["pluginMain"]}"
)
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = 'simplexcore'
from components.java
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
pom {
name = 'SimplexCore'
description = 'An API and Library designed for development of Paper plugins.'
url = 'https://simplexdev.app'
licenses {
license {
name = 'GNU General Public License v2.0'
url = 'https://opensource.org/licenses/gpl-2.0.php'
}
}
developers {
developer {
id = 'simplexdevelopment'
name = 'Simplex Development Group'
}
}
scm {
connection = 'scm:git:git://github.com/simplexdevelopment/simplexcore.git'
developerConnection = 'scm:git:ssh://github.com/simplexdevelopment/simplexcore.git'
url = 'https://github.com/SimplexDevelopment/SimplexCore'
}
}
}
}
repositories {
maven {
// change URLs to point to your repos, e.g. http://my.org/repo
def releasesRepoUrl = layout.buildDirectory.dir('https://s01.oss.sonatype.org/content/repository/releases')
def snapshotsRepoUrl = layout.buildDirectory.dir('https://s01.oss.sonatype.org/content/repository/snapshots')
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
}
signing {
sign publishing.publications.mavenJava
}
javadoc {
if(JavaVersion.current().isJava9Compatible()) {
options.addBooleanOption('html5', true)
}
}