blob: 079d0db220afc4e58c08f4f9011f974f2f7a0d13 [file] [log] [blame]
Eric Andersonb938ba52015-02-28 09:59:25 -08001import org.apache.tools.ant.taskdefs.condition.Os
2
nathanmittler164b7342014-12-15 09:58:05 -08003subprojects {
4 apply plugin: "java"
5 apply plugin: "maven"
nmittler52f42202015-01-21 14:30:14 -08006 apply plugin: "idea"
Eric Anderson192144e2015-03-02 13:31:14 -08007 apply plugin: "signing"
nathanmittler164b7342014-12-15 09:58:05 -08008
nmittlerf8314582015-01-27 10:25:39 -08009 group = "io.grpc"
nathanmittler164b7342014-12-15 09:58:05 -080010 version = "0.1.0-SNAPSHOT"
11
12 sourceCompatibility = 1.6
13 targetCompatibility = 1.6
14
15 repositories {
16 mavenCentral()
17 mavenLocal()
18 }
19
nmittler02c953e2015-01-26 14:03:11 -080020 compileJava {
Eric Andersone26608f2015-02-13 16:39:54 -080021 options.compilerArgs << "-Xlint:unchecked"
Eric Anderson61179ab2015-02-24 22:59:32 +000022 options.encoding = "UTF-8"
nmittler02c953e2015-01-26 14:03:11 -080023 }
24
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080025 ext {
26 libraries = [
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080027 guava: 'com.google.guava:guava:18.0',
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080028 // used to collect benchmark results
29 hdrhistogram: 'org.hdrhistogram:HdrHistogram:2.1.4',
Jeff Pinnerb1cc7cc2015-02-25 10:17:23 -080030 hpack: 'com.twitter:hpack:0.10.1',
nmittlerb897a892015-02-23 12:03:59 -080031 javaee_api: 'javax:javaee-api:7.0',
32 jsonp: 'org.glassfish:javax.json:1.0.4',
33 jsr305: 'com.google.code.findbugs:jsr305:3.0.0',
34 oauth_client: 'com.google.oauth-client:google-oauth-client:1.18.0-rc',
35 okhttp: 'com.squareup.okhttp:okhttp:2.2.0',
Eric Andersona6f5fff2015-02-26 07:53:17 -080036 protobuf: 'com.google.protobuf:protobuf-java:3.0.0-alpha-2',
37 protobuf_nano: 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2',
nmittlerb897a892015-02-23 12:03:59 -080038 protobuf_plugin: 'ws.antonov.gradle.plugins:gradle-plugin-protobuf:0.9.1',
nathanmittler164b7342014-12-15 09:58:05 -080039
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080040 // TODO: Unreleased dependencies.
41 // These must already be installed in the local maven repository.
42 netty: 'io.netty:netty-codec-http2:5.0.0.Alpha2-SNAPSHOT',
nathanmittler164b7342014-12-15 09:58:05 -080043
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080044 // Test dependencies.
45 junit: 'junit:junit:4.11',
Eric Anderson192144e2015-03-02 13:31:14 -080046 mockito: 'org.mockito:mockito-core:1.10.19'
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080047 ]
48
49 // Determine the correct version of Jetty ALPN boot to use based
50 // on the Java version.
51 def alpnboot_version = '8.1.2.v20141202'
52 if (JavaVersion.current().ordinal() < JavaVersion.VERSION_1_8.ordinal()) {
53 alpnboot_version = '7.1.2.v20141202'
54 }
55
56 alpnboot_package_name = 'org.mortbay.jetty.alpn:alpn-boot:' + alpnboot_version
Eric Andersonb938ba52015-02-28 09:59:25 -080057
58 def exeSuffix = Os.isFamily(Os.FAMILY_WINDOWS) ? ".exe" : ""
59 // The split is to workaround everything after the colon in C:\ being
60 // removed due to a bug in the protobuf plugin.
61 // https://github.com/aantono/gradle-plugin-protobuf/issues/23
62 def splitRootDir = rootDir
63 if (Os.isFamily(Os.FAMILY_WINDOWS)) {
64 splitRootDir = splitRootDir.getPath().split(":", 2)[1]
65 }
66 javaPluginPath = "$splitRootDir/compiler/build/binaries/java_pluginExecutable/java_plugin$exeSuffix"
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080067 }
nathanmittler164b7342014-12-15 09:58:05 -080068
69 dependencies {
70 testCompile libraries.junit,
71 libraries.mockito
72 }
Eric Anderson192144e2015-03-02 13:31:14 -080073
74 signing {
75 required false
76 sign configurations.archives
77 }
78
79 task javadocJar(type: Jar) {
80 classifier = 'javadoc'
81 from javadoc
82 }
83
84 task sourcesJar(type: Jar) {
85 classifier = 'sources'
86 from sourceSets.main.allSource
87 }
88
89 artifacts {
90 archives javadocJar, sourcesJar
91 }
92
93 uploadArchives.repositories.mavenDeployer {
94 beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
95
96 repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
97 if (rootProject.hasProperty("ossrhUsername")
98 && rootProject.hasProperty("ossrhPassword")) {
99 authentication(userName: ossrhUsername, password: ossrhPassword)
100 }
101 }
102
103 snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
104 if (rootProject.hasProperty("ossrhUsername")
105 && rootProject.hasProperty("ossrhPassword")) {
106 authentication(userName: ossrhUsername, password: ossrhPassword)
107 }
108 }
109 }
110
111 [
112 install.repositories.mavenInstaller,
113 uploadArchives.repositories.mavenDeployer,
114 ]*.pom*.whenConfigured { pom ->
115 pom.project {
116 description project.description
117 url 'https://github.com/grpc/grpc-java'
118
119 scm {
120 connection 'scm:svn:https://github.com/grpc/grpc-java.git'
121 developerConnection 'scm:svn:git@github.com:grpc/grpc-java.git'
122 url 'https://github.com/grpc/grpc-java'
123 }
124
125 licenses {
126 license {
127 name 'BSD 3-Clause'
128 url 'http://opensource.org/licenses/BSD-3-Clause'
129 }
130 }
131 }
132 }
nathanmittler164b7342014-12-15 09:58:05 -0800133}