blob: 27390ea1b7bcdd193a905ef3e4bf36a180192642 [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
Eric Anderson14444a92015-03-11 16:44:38 -070025 javadoc.options.encoding = "UTF-8"
26
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080027 ext {
28 libraries = [
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080029 guava: 'com.google.guava:guava:18.0',
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080030 // used to collect benchmark results
31 hdrhistogram: 'org.hdrhistogram:HdrHistogram:2.1.4',
Jeff Pinnerb1cc7cc2015-02-25 10:17:23 -080032 hpack: 'com.twitter:hpack:0.10.1',
nmittlerb897a892015-02-23 12:03:59 -080033 javaee_api: 'javax:javaee-api:7.0',
34 jsonp: 'org.glassfish:javax.json:1.0.4',
35 jsr305: 'com.google.code.findbugs:jsr305:3.0.0',
36 oauth_client: 'com.google.oauth-client:google-oauth-client:1.18.0-rc',
37 okhttp: 'com.squareup.okhttp:okhttp:2.2.0',
Eric Andersona6f5fff2015-02-26 07:53:17 -080038 protobuf: 'com.google.protobuf:protobuf-java:3.0.0-alpha-2',
39 protobuf_nano: 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2',
nmittlerb897a892015-02-23 12:03:59 -080040 protobuf_plugin: 'ws.antonov.gradle.plugins:gradle-plugin-protobuf:0.9.1',
nathanmittler164b7342014-12-15 09:58:05 -080041
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080042 // TODO: Unreleased dependencies.
43 // These must already be installed in the local maven repository.
nmittler2a425092015-03-11 12:15:30 -070044 netty: 'io.netty:netty-codec-http2:4.1.0.Beta5-SNAPSHOT',
nathanmittler164b7342014-12-15 09:58:05 -080045
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080046 // Test dependencies.
47 junit: 'junit:junit:4.11',
Eric Anderson192144e2015-03-02 13:31:14 -080048 mockito: 'org.mockito:mockito-core:1.10.19'
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080049 ]
50
51 // Determine the correct version of Jetty ALPN boot to use based
52 // on the Java version.
53 def alpnboot_version = '8.1.2.v20141202'
54 if (JavaVersion.current().ordinal() < JavaVersion.VERSION_1_8.ordinal()) {
55 alpnboot_version = '7.1.2.v20141202'
56 }
57
58 alpnboot_package_name = 'org.mortbay.jetty.alpn:alpn-boot:' + alpnboot_version
Eric Andersonb938ba52015-02-28 09:59:25 -080059
60 def exeSuffix = Os.isFamily(Os.FAMILY_WINDOWS) ? ".exe" : ""
61 // The split is to workaround everything after the colon in C:\ being
62 // removed due to a bug in the protobuf plugin.
63 // https://github.com/aantono/gradle-plugin-protobuf/issues/23
64 def splitRootDir = rootDir
65 if (Os.isFamily(Os.FAMILY_WINDOWS)) {
66 splitRootDir = splitRootDir.getPath().split(":", 2)[1]
67 }
68 javaPluginPath = "$splitRootDir/compiler/build/binaries/java_pluginExecutable/java_plugin$exeSuffix"
Jakob Buchgraber7ddcdfd2015-02-13 16:21:53 -080069 }
nathanmittler164b7342014-12-15 09:58:05 -080070
71 dependencies {
72 testCompile libraries.junit,
73 libraries.mockito
74 }
Eric Anderson192144e2015-03-02 13:31:14 -080075
76 signing {
77 required false
78 sign configurations.archives
79 }
80
nmittler732cfc02015-03-03 07:59:13 -080081 // Disable JavaDoc doclint on Java 8. It's annoying.
82 if (JavaVersion.current().isJava8Compatible()) {
83 allprojects {
84 tasks.withType(Javadoc) {
85 options.addStringOption('Xdoclint:none', '-quiet')
86 }
87 }
88 }
89
Eric Anderson192144e2015-03-02 13:31:14 -080090 task javadocJar(type: Jar) {
91 classifier = 'javadoc'
92 from javadoc
93 }
94
95 task sourcesJar(type: Jar) {
96 classifier = 'sources'
97 from sourceSets.main.allSource
98 }
99
100 artifacts {
101 archives javadocJar, sourcesJar
102 }
103
104 uploadArchives.repositories.mavenDeployer {
105 beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
106
107 repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
108 if (rootProject.hasProperty("ossrhUsername")
109 && rootProject.hasProperty("ossrhPassword")) {
110 authentication(userName: ossrhUsername, password: ossrhPassword)
111 }
112 }
113
114 snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
115 if (rootProject.hasProperty("ossrhUsername")
116 && rootProject.hasProperty("ossrhPassword")) {
117 authentication(userName: ossrhUsername, password: ossrhPassword)
118 }
119 }
120 }
121
122 [
123 install.repositories.mavenInstaller,
124 uploadArchives.repositories.mavenDeployer,
125 ]*.pom*.whenConfigured { pom ->
126 pom.project {
127 description project.description
128 url 'https://github.com/grpc/grpc-java'
129
130 scm {
131 connection 'scm:svn:https://github.com/grpc/grpc-java.git'
132 developerConnection 'scm:svn:git@github.com:grpc/grpc-java.git'
133 url 'https://github.com/grpc/grpc-java'
134 }
135
136 licenses {
137 license {
138 name 'BSD 3-Clause'
139 url 'http://opensource.org/licenses/BSD-3-Clause'
140 }
141 }
142 }
143 }
nathanmittler164b7342014-12-15 09:58:05 -0800144}