Files
hamster-ball/build.gradle
2022-11-02 07:42:51 +08:00

86 lines
2.5 KiB
Groovy

plugins {
id 'java'
}
group 'cn.hamster3.mc.plugin.ball'
version '1.0.0-SNAPSHOT'
subprojects {
apply plugin: 'java-library'
apply plugin: 'maven-publish'
group = rootProject.group
version = rootProject.version
repositories {
maven {
url = "https://maven.airgame.net/maven-public/"
}
}
configurations {
shade
api.extendsFrom apiShade
implementation.extendsFrom implementationShade
}
dependencies {
// https://mvnrepository.com/artifact/org.jetbrains/annotations
compileOnly 'org.jetbrains:annotations:23.0.0'
// https://mvnrepository.com/artifact/org.projectlombok/lombok
compileOnly 'org.projectlombok:lombok:1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
// withJavadocJar()
withSourcesJar()
}
tasks.withType(JavaCompile) {
options.setEncoding("UTF-8")
}
tasks.withType(Jar) {
from([rootProject.file("LICENSE")])
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
}
javadoc {
options.quiet()
options.setEncoding("UTF-8")
options.jFlags("-Dfile.encoding=utf8")
options.addStringOption('Xdoclint:none', '-quiet')
options.links = [
"https://javadoc.io/doc/org.jetbrains/annotations/23.0.0",
'https://javadoc.io/doc/com.google.code.gson/gson/2.8.0',
'http://milkbowl.github.io/VaultAPI',
'https://bukkit.windit.net/javadoc'
]
}
publishing {
publications {
mavenJava(MavenPublication) {
def projectNameSplit = project.name.split('-')
artifactId = projectNameSplit[projectNameSplit.length - 1]
from project.components.java
}
}
repositories {
maven {
def releasesRepoUrl = 'https://maven.airgame.net/maven-releases/'
def snapshotsRepoUrl = 'https://maven.airgame.net/maven-snapshots/'
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username rootProject.properties.getOrDefault("maven_username", "")
password rootProject.properties.getOrDefault("maven_password", "")
}
}
}
}
}