plugins { id 'java' } group 'cn.hamster3.mc.plugin.core' 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' } 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", "") } } } } }