plugins { id 'java-library' id 'maven-publish' id 'signing' } ext.isSnapshotVersion = version.endsWith("SNAPSHOT") ext.isReleaseVersion = !ext.isSnapshotVersion sourceCompatibility = '11' targetCompatibility = '11' repositories { mavenCentral() } dependencies { testImplementation 'junit:junit:4.13.1' } tasks.withType(Jar) { manifest { attributes 'Implementation-Title': 'AppleSingle', 'Implementation-Version': "${project.version} (${new Date().format('yyyy-MM-dd HH:mm')})" } } javadoc { title = "applesingle-api ${project.version}" source = sourceSets.main.allJava options.addStringOption('Xdoclint:none', '-quiet') } task javadocJar(type: Jar) { archiveClassifier = 'javadoc' from javadoc } task sourcesJar(type: Jar) { archiveClassifier = 'sources' from sourceSets.main.allSource } artifacts { archives javadocJar, sourcesJar } publishing { publications { mavenJava(MavenPublication) { from components.java artifact sourcesJar artifact javadocJar pom { groupId = "net.sf.applecommander" artifactId = "applesingle-api" name = 'applesingle-api' description = 'A Java library for managing AppleSingle files.' url = 'https://applecommander.github.io/' licenses { license { name = 'The GNU General Public License (GPL) Version 2, June 1991' url = 'https://www.gnu.org/licenses/gpl-2.0.html' } } developers { developer { id = 'robgreene' name = 'Rob Greene' email = 'robgreene@gmail.com' } } scm { connection = 'scm:git:https://github.com/AppleCommander/applesingle.git' developerConnection = 'scm:git:git@github.com:AppleCommander/applesingle.git' url = 'https://github.com/AppleCommander/applesingle' } } repositories { maven { def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/" url = isSnapshotVersion ? snapshotsRepoUrl : releasesRepoUrl credentials { username = findProperty('ossrhUsername') password = findProperty('ossrhPassword') } } } } } } signing { sign publishing.publications.mavenJava }