plugins { id 'maven-publish' } subprojects { apply plugin: 'java' apply plugin: 'maven-publish' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { mavenLocal() mavenCentral() maven { url 'https://maven.fabricmc.net/' } } dependencies { implementation 'com.google.guava:guava:30.1-jre' implementation 'com.google.code.gson:gson:2.8.6' testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest-all:1.3' } group = 'cuchaz' version = '1.0.0' version = version + (System.getenv("GITHUB_ACTIONS") ? "" : "+local") task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } java { withSourcesJar() } tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" if (JavaVersion.current().isJava9Compatible()) { it.options.release = 8 } } publishing { publications { "$project.name"(MavenPublication) { groupId project.group artifactId project.name version project.version from components.java } } } } allprojects { publishing { repositories { mavenLocal() def ENV = System.getenv() if (ENV.MAVEN_URL) { maven { url ENV.MAVEN_URL credentials { username ENV.MAVEN_USERNAME password ENV.MAVEN_PASSWORD } } } } } } // A task to ensure that the version being released has not already been released. task checkVersion { doFirst { def xml = new URL("https://maven.fabricmc.net/cuchaz/enigma/maven-metadata.xml").text def metadata = new XmlSlurper().parseText(xml) def versions = metadata.versioning.versions.version*.text(); if (versions.contains(version)) { throw new RuntimeException("${version} has already been released!") } } } publish.mustRunAfter checkVersion