You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by gw...@apache.org on 2015/11/25 02:41:10 UTC
kafka git commit: MINOR: Introduce `installAll` and accept major as
well as full Scala version
Repository: kafka
Updated Branches:
refs/heads/trunk d1053915f -> 3022c1938
MINOR: Introduce `installAll` and accept major as well as full Scala version
We can take advantage of the fact that major Scala versions are binary compatible (since 2.10) to make the build a little more user-friendly.
Author: Ismael Juma <is...@juma.me.uk>
Reviewers: Ewen Cheslack=Postava, Grant Henke
Closes #574 from ijuma/install-all-and-major-instead-of-full-version
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/3022c193
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/3022c193
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/3022c193
Branch: refs/heads/trunk
Commit: 3022c1938d6cce22450be45d3a28728159f4dfbc
Parents: d105391
Author: Ismael Juma <is...@juma.me.uk>
Authored: Tue Nov 24 17:41:02 2015 -0800
Committer: Gwen Shapira <cs...@gmail.com>
Committed: Tue Nov 24 17:41:02 2015 -0800
----------------------------------------------------------------------
README.md | 7 ++++---
build.gradle | 35 +++++++++++++++++++++--------------
scala.gradle | 19 +++++++++++++++++--
3 files changed, 42 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/3022c193/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index c500a7a..3907b31 100644
--- a/README.md
+++ b/README.md
@@ -55,9 +55,10 @@ The release file can be found inside ./core/build/distributions/.
### Running a task on a particular version of Scala (either 2.10.6 or 2.11.7) ###
#### (If building a jar with a version other than 2.10, need to set SCALA_BINARY_VERSION variable or change it in bin/kafka-run-class.sh to run quick start.) ####
- ./gradlew -PscalaVersion=2.11.7 jar
- ./gradlew -PscalaVersion=2.11.7 test
- ./gradlew -PscalaVersion=2.11.7 releaseTarGz
+You can pass either the major version (eg 2.11) or the full version (eg 2.11.7):
+ ./gradlew -PscalaVersion=2.11 jar
+ ./gradlew -PscalaVersion=2.11 test
+ ./gradlew -PscalaVersion=2.11 releaseTarGz
### Running a task for a specific project ###
This is for 'core', 'examples' and 'clients'
http://git-wip-us.apache.org/repos/asf/kafka/blob/3022c193/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 266e048..4eba282 100644
--- a/build.gradle
+++ b/build.gradle
@@ -190,7 +190,7 @@ subprojects {
}
}
-for ( sv in ['2_10_6', '2_11_7'] ) {
+for ( sv in ['2_10', '2_11'] ) {
String svInDot = sv.replaceAll( "_", ".")
tasks.create(name: "jar_core_${sv}", type: GradleBuild) {
@@ -217,6 +217,12 @@ for ( sv in ['2_10_6', '2_11_7'] ) {
startParameter.projectProperties = [scalaVersion: "${svInDot}"]
}
+ tasks.create(name: "install_${sv}", type: GradleBuild) {
+ buildFile = './build.gradle'
+ tasks = ['install']
+ startParameter.projectProperties = [scalaVersion: "${svInDot}"]
+ }
+
tasks.create(name: "releaseTarGz_${sv}", type: GradleBuild) {
buildFile = './build.gradle'
tasks = ['releaseTarGz']
@@ -234,22 +240,23 @@ def connectPkgs = ['connect:api', 'connect:runtime', 'connect:json', 'connect:fi
def pkgs = ['clients', 'examples', 'log4j-appender', 'tools', 'streams'] + connectPkgs
tasks.create(name: "jarConnect", dependsOn: connectPkgs.collect { it + ":jar" }) {}
-tasks.create(name: "jarAll", dependsOn: ['jar_core_2_10_6', 'jar_core_2_11_7'] + pkgs.collect { it + ":jar" }) { }
+tasks.create(name: "jarAll", dependsOn: ['jar_core_2_10', 'jar_core_2_11'] + pkgs.collect { it + ":jar" }) { }
-tasks.create(name: "srcJarAll", dependsOn: ['srcJar_2_10_6', 'srcJar_2_11_7'] + pkgs.collect { it + ":srcJar" }) { }
+tasks.create(name: "srcJarAll", dependsOn: ['srcJar_2_10', 'srcJar_2_11'] + pkgs.collect { it + ":srcJar" }) { }
-tasks.create(name: "docsJarAll", dependsOn: ['docsJar_2_10_6', 'docsJar_2_11_7'] + pkgs.collect { it + ":docsJar" }) { }
+tasks.create(name: "docsJarAll", dependsOn: ['docsJar_2_10', 'docsJar_2_11'] + pkgs.collect { it + ":docsJar" }) { }
tasks.create(name: "testConnect", dependsOn: connectPkgs.collect { it + ":test" }) {}
-tasks.create(name: "testAll", dependsOn: ['test_core_2_10_6', 'test_core_2_11_7'] + pkgs.collect { it + ":test" }) { }
+tasks.create(name: "testAll", dependsOn: ['test_core_2_10', 'test_core_2_11'] + pkgs.collect { it + ":test" }) { }
-tasks.create(name: "releaseTarGzAll", dependsOn: ['releaseTarGz_2_10_6', 'releaseTarGz_2_11_7']) {
-}
+tasks.create(name: "installAll", dependsOn: ['install_2_10', 'install_2_11'] + pkgs.collect { it + ":install" }) { }
+
+tasks.create(name: "releaseTarGzAll", dependsOn: ['releaseTarGz_2_10', 'releaseTarGz_2_11']) { }
-tasks.create(name: "uploadArchivesAll", dependsOn: ['uploadCoreArchives_2_10_6', 'uploadCoreArchives_2_11_7'] + pkgs.collect { it + ":uploadArchives" }) { }
+tasks.create(name: "uploadArchivesAll", dependsOn: ['uploadCoreArchives_2_10', 'uploadCoreArchives_2_11'] + pkgs.collect { it + ":uploadArchives" }) { }
project(':core') {
- println "Building project 'core' with Scala version $scalaVersion"
+ println "Building project 'core' with Scala version $resolvedScalaVersion"
apply plugin: 'scala'
archivesBaseName = "kafka_${baseScalaVersion}"
@@ -257,12 +264,12 @@ project(':core') {
dependencies {
compile project(':clients')
compile "$slf4jlog4j"
- compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.scala-lang:scala-library:$resolvedScalaVersion"
compile 'org.apache.zookeeper:zookeeper:3.4.6'
compile 'com.101tec:zkclient:0.7'
compile 'com.yammer.metrics:metrics-core:2.2.0'
compile 'net.sf.jopt-simple:jopt-simple:4.9'
- if (scalaVersion.startsWith('2.11')) {
+ if (baseScalaVersion == '2.11') {
compile 'org.scala-lang.modules:scala-xml_2.11:1.0.4'
compile 'org.scala-lang.modules:scala-parser-combinators_2.11:1.0.4'
}
@@ -299,7 +306,7 @@ project(':core') {
from (configurations.runtime) {
exclude('kafka-clients*')
}
- into "$buildDir/dependant-libs-${scalaVersion}"
+ into "$buildDir/dependant-libs-${resolvedScalaVersion}"
}
tasks.create(name: "genProducerConfigDocs", dependsOn:jar, type: JavaExec) {
@@ -523,7 +530,7 @@ project(':tools') {
from (configurations.runtime) {
exclude('kafka-clients*')
}
- into "$buildDir/dependant-libs-${scalaVersion}"
+ into "$buildDir/dependant-libs-${resolvedScalaVersion}"
}
jar {
@@ -580,7 +587,7 @@ project(':streams') {
from (configurations.runtime) {
exclude('kafka-clients*')
}
- into "$buildDir/dependant-libs-${scalaVersion}"
+ into "$buildDir/dependant-libs-${resolvedScalaVersion}"
}
jar {
http://git-wip-us.apache.org/repos/asf/kafka/blob/3022c193/scala.gradle
----------------------------------------------------------------------
diff --git a/scala.gradle b/scala.gradle
index 8703af4..e33a94f 100644
--- a/scala.gradle
+++ b/scala.gradle
@@ -13,14 +13,29 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+ext.defaultScala210Version = '2.10.6'
+ext.defaultScala211Version = '2.11.7'
if (!hasProperty('scalaVersion')) {
- ext.scalaVersion = '2.10.6'
+ ext.scalaVersion = defaultScala210Version
}
-ext.defaultScalaVersion = '2.10.6'
+ext.defaultScalaVersion = defaultScala210Version
+
if (scalaVersion.startsWith('2.10')) {
ext.baseScalaVersion = '2.10'
+ setResolvedScalaVersion(defaultScala210Version)
} else if (scalaVersion.startsWith('2.11')) {
ext.baseScalaVersion = '2.11'
+ setResolvedScalaVersion(defaultScala211Version)
} else {
ext.baseScalaVersion = scalaVersion
}
+
+def setResolvedScalaVersion(defaultFullScalaVersion) {
+ if (scalaVersion == ext.baseScalaVersion) {
+ ext.resolvedScalaVersion = defaultFullScalaVersion
+ }
+ else {
+ ext.resolvedScalaVersion = scalaVersion
+ }
+}
+