apply plugin: 'java' apply plugin: 'maven-publish' group = 'com.amadornes.artifactural' version = '1.0.0' sourceSets { api shared gradlecomp } repositories { jcenter() mavenCentral() } configurations { sharedImplementation.extendsFrom apiImplementation gradlecompImplementation.extendsFrom sharedImplementation compile.extendsFrom sharedImplementation compile.extendsFrom gradlecompImplementation } dependencies { sharedImplementation sourceSets.api.output gradlecompImplementation sourceSets.shared.output gradlecompImplementation gradleApi() gradlecompImplementation 'com.google.guava:guava:26.0-jre' gradlecompImplementation 'commons-io:commons-io:2.4' compile sourceSets.api.output compile sourceSets.shared.output compile sourceSets.gradlecomp.output } jar { from sourceSets.api.output from sourceSets.shared.output from sourceSets.gradlecomp.output } publishing { publications { mavenJava(MavenPublication) { from components.java pom { groupId = project.group version = project.version artifactId = project.archivesBaseName name = project.archivesBaseName packaging = 'jar' description = 'A Gradle artifact processing and management tool' url = 'https://github.com/amadornes/Artifactural/' scm { url = 'https://github.com/amadornes/Artifactural/' connection = 'scm:git:git://github.com/amadornes/Artifactural.git' developerConnection = 'scm:git:git@github.com:amadornes/Artifactural.git' } issueManagement { system = 'github' url = 'https://github.com/amadornes/Artifactural/issues' } licenses { license { name = 'LGPL-2.1' url = 'https://www.gnu.org/licenses/lgpl-2.1.txt' distribution = 'repo' } } } } } repositories { maven { if (project.hasProperty('mavenPassword')) { credentials { username = project.properties.mavenUser password = project.properties.mavenPassword } url 'http://files.minecraftforge.net/maven/manage/upload' } else { url 'file://' + rootProject.file('repo').getAbsolutePath() } } } }