apply plugin: 'maven-publish' apply plugin: 'signing' afterEvaluate { publishing { publications { release(MavenPublication) { groupId = groupName artifactId = 'tunnel' version wireguardVersionName artifact sourcesJar artifact javadocJar from components.getByName("release") pom { name = 'WireGuard Tunnel Library' description = 'Embeddable tunnel library for WireGuard for Android' url = 'https://www.wireguard.com/' licenses { license { name = 'The Apache Software License, Version 2.0' url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution = 'repo' } } scm { connection = 'scm:git:https://git.zx2c4.com/wireguard-android' developerConnection = 'scm:git:https://git.zx2c4.com/wireguard-android' url = 'https://git.zx2c4.com/wireguard-android' } developers { organization { name = 'WireGuard' url = 'https://www.wireguard.com/' } } } } } repositories { maven { name = "sonatype" url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") credentials { username = hasProperty('SONATYPE_USER') ? getProperty('SONATYPE_USER') : System.getenv('SONATYPE_USER') password = hasProperty('SONATYPE_PASSWORD') ? getProperty('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') } } } } } android.libraryVariants.all { variant -> if (variant.name == 'release') { task javadoc(type: Javadoc) { source = variant.javaCompileProvider.get().source classpath = files((android.bootClasspath.join(File.pathSeparator))) classpath += variant.javaCompileProvider.get().classpath title = 'Embeddable WireGuard Tunnel for Android v$wireguardVersionName' } task javadocJar(type: Jar, dependsOn: javadoc) { archiveClassifier = 'javadoc' from javadoc.destinationDir } task sourcesJar(type: Jar) { archiveClassifier = 'sources' from android.sourceSets.main.java.srcDirs } } } signing { useGpgCmd() sign publishing.publications }