apply plugin: 'maven' apply plugin: 'java' apply plugin: 'osdetector' apply plugin: 'signing' description = 'Pre-compiled protoc (protobuf compiler) artifacts' group = 'com.google.protobuf' version = '3.0.0-alpha-3-pre' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gradle:osdetector-gradle-plugin:1.2.1' } } repositories { mavenCentral() } signing { required false sign configurations.archives } def artifactFile = 'target/protoc.exe' as File task buildProtoc(type: Exec) { commandLine 'bash', 'build-protoc.sh' } task prepareArtifact(type: Copy, dependsOn: buildProtoc) { from '../src/' as File into artifactFile.parent include 'protoc', 'protoc.exe' rename 'protoc', 'protoc.exe' } artifacts { archives(artifactFile) { classifier osdetector.classifier type "exe" extension "exe" builtBy prepareArtifact } } uploadArchives.repositories.mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { if (rootProject.hasProperty("ossrhUsername") && rootProject.hasProperty("ossrhPassword")) { authentication(userName: ossrhUsername, password: ossrhPassword) } } snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { if (rootProject.hasProperty("ossrhUsername") && rootProject.hasProperty("ossrhPassword")) { authentication(userName: ossrhUsername, password: ossrhPassword) } } } [ install.repositories.mavenInstaller, uploadArchives.repositories.mavenDeployer, ]*.pom*.whenConfigured { pom -> pom.project { name "$project.group:$project.name" description project.description url 'https://github.com/google/protobuf' scm { connection 'scm:svn:https://github.com/google/protobuf.git' developerConnection 'scm:svn:git@github.com:google/protobuf.git' url 'https://github.com/google/protobuf' } licenses { license { name 'BSD 3-Clause' url 'http://opensource.org/licenses/BSD-3-Clause' } } developers { developer { id "com.google.protobuf" name "Protobuf Contributors" email "protobuf@googlegroups.com" url "https://github.com/google/protobuf" organization = "Google, Inc." organizationUrl "https://www.google.com" } } } } // Exe files are skipped by Maven by default. Override it. [ install.repositories.mavenInstaller, uploadArchives.repositories.mavenDeployer, ]*.addFilter('all') {artifact, file -> true} task wrapper(type: Wrapper) { gradleVersion = '2.0' }