diff --git a/README.md b/README.md index 1213935..1a67145 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Luontola. Usage ---- -1. Download openjdk8 early access from https://jdk8.java.net/download.html +1. Download [jdk8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html). 2. Add the following to your build.gradle @@ -20,7 +20,7 @@ Usage } dependencies { - classpath 'me.tatarka:gradle-retrolambda:1.3.0' + classpath 'me.tatarka:gradle-retrolambda:1.3.1' } } @@ -37,29 +37,27 @@ Usage The plugin will compile the source code with java8 and then replace the class files with the output of retrolambda. -Configuation ------------- +Configuration +------------- You can add a block like the following to configure the plugin: ```groovy retrolambda { - compile "net.orfjackal.retrolambda:retrolambda:1.1.2" jdk System.getenv("JAVA8_HOME") oldJdk System.getenv("JAVA6_HOME") javaVersion JavaVersion.VERSION_1_6 } ``` -- `compile` Set the path to retrolambda.jar. The default is the one on maven - central. -- `jdk` Set the path to the java 8 jdk. The default is found using either - `JAVA8_HOME`. If you a running gradle with java 6 or 7, you must have either - `JAVA8_HOME` or this property set. -- `oldJdk` Sets the path to the java 6 or 7 jdk. The default is found using - `JAVA6_HOME`/`JAVA7_HOME`. If you are running gradle with java 8 and wish - to run unit tests, you must have either `JAVA6_HOME`/`JAVA7_HOME` or this - property set. This is so the tests can be run with the correct java version. +- `jdk` Set the path to the java 8 jdk. The default is found using the + environment variable `JAVA8_HOME`. If you a running gradle with java 6 or 7, + you must have either `JAVA8_HOME` or this property set. +- `oldJdk` Sets the path to the java 6 or 7 jdk. The default is found using the + environment variable `JAVA6_HOME`/`JAVA7_HOME`. If you are running gradle with + java 8 and wish to run unit tests, you must have either + `JAVA6_HOME`/`JAVA7_HOME` or this property set. This is so the tests can be + run with the correct java version. - `javaVersion` Set the java version to compile to. The default is 6. Only 6 or 7 are accepted. - `include 'Debug', 'Release'` Sets which sets/variants to run through @@ -67,6 +65,21 @@ retrolambda { - `exclude 'Test'` Sets which sets/variants to not run through retrolambda. Only one of either `include` or `exclude` should be defined. +### Using a Different Version of the retrolambda.jar + +The default version of retrolambda used is +`'net.orfjackal.retrolambda:retrolambda:1.1.4'`. If you want to use a different +one, you can configure it in your dependencies. + +```groovy +dependencies { + // Latest one on maven central + retrolambdaConfig 'net.orfjackal.retrolambda:retrolambda:1.+' + // Or a local version + // retrolambdaConfig files('libs/retrolambda.jar') +} +``` + Android Studio Setup -------------------- Luckily Android Studio already has built-in lambda support! Enable it for your @@ -105,14 +118,19 @@ Updates - Fixed bug where java unit tests were not being run through retrolambda - Allow gradle to be called with java 6 or 7, i.e. Java 8 no longer has to be your default java. -- Thank you Mart-Bogdan for starting these fixes +- Thank you Mart-Bogdan for starting these fixes. ### 1.1.1 - Fixed not correctly finding java 8 executable when running from java 6 or 7 on windows. (Mart-Bogdan) ### 1.2.0 -- Support android-library projects +- Support android-library projects. ### 1.3.0 -- Support android instrument tests +- Support android instrument tests. + +### 1.3.1 +- Removed `compile` property, which didn't work anyway. Use `retrolambdaConfig` + instead. +- Minor error message improvement. diff --git a/build.gradle b/build.gradle index d9ba44f..0b9a829 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ repositories { } group = 'me.tatarka' -version = '1.3.0' +version = '1.3.1' dependencies { compile gradleApi() diff --git a/src/main/groovy/me/tatarka/RetrolambdaExtension.groovy b/src/main/groovy/me/tatarka/RetrolambdaExtension.groovy index 7f4e06c..8b85149 100644 --- a/src/main/groovy/me/tatarka/RetrolambdaExtension.groovy +++ b/src/main/groovy/me/tatarka/RetrolambdaExtension.groovy @@ -27,7 +27,6 @@ import org.gradle.api.ProjectConfigurationException * To change this template use File | Settings | File Templates. */ public class RetrolambdaExtension { - Object compile = "net.orfjackal.retrolambda:retrolambda:1.1.2" int bytecodeVersion = 50 List excludes = [] List includes = [] @@ -50,10 +49,6 @@ public class RetrolambdaExtension { includes.addAll(e.collect { i -> i.toString() }) } - public void setCompile(Object c) { - compile = c - } - public void setBytecodeVersion(int v) { bytecodeVersion = v if (!oldJdkSet) oldJdk = findOldJdk() diff --git a/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy b/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy index dad8c8b..a7f683b 100644 --- a/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy +++ b/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy @@ -27,6 +27,8 @@ import org.gradle.api.Project * To change this template use File | Settings | File Templates. */ public class RetrolambdaPlugin implements Plugin { + private static def retrolambdaCompile = "net.orfjackal.retrolambda:retrolambda:1.1.4" + @Override void apply(Project project) { project.extensions.create('retrolambda', RetrolambdaExtension) @@ -36,7 +38,7 @@ public class RetrolambdaPlugin implements Plugin { } project.dependencies { - retrolambdaConfig project.retrolambda.compile + retrolambdaConfig retrolambdaCompile } project.task('compileRetrolambda', dependsOn: project.tasks.matching {task -> diff --git a/src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy b/src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy index e08de73..398a4ee 100644 --- a/src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy +++ b/src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy @@ -19,6 +19,7 @@ package me.tatarka import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.ProjectConfigurationException +import org.gradle.api.logging.LogLevel import org.gradle.api.tasks.JavaExec import org.gradle.util.CollectionUtils @@ -82,6 +83,8 @@ public class RetrolambdaPluginAndroid implements Plugin { "-Dretrolambda.bytecodeVersion=${project.retrolambda.bytecodeVersion}", "-javaagent:${classpath.asPath}" ] + + logging.captureStandardOutput(LogLevel.INFO) } // Set the output dir back so subsequent tasks use it @@ -108,7 +111,7 @@ public class RetrolambdaPluginAndroid implements Plugin { project.task("patchAndroidJar") { def rt = "$project.retrolambda.jdk/jre/lib/rt.jar" def classesPath = "$buildPath/classes" - def jdkPathError = " does not exist, make sure that JAVE_HOME or retrolambda.jdk points to a valid version of java8\n You can download java8 from https://jdk8.java.net/download.html" + def jdkPathError = " does not exist, make sure that the environment variable JAVA_HOME or JAVA8_HOME, or the gradle property retrolambda.jdk points to a valid version of java8." inputs.dir androidJar inputs.dir rt diff --git a/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy b/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy index 1718dce..cb6777e 100644 --- a/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy +++ b/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy @@ -19,6 +19,7 @@ package me.tatarka import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.ProjectConfigurationException +import org.gradle.api.logging.LogLevel import org.gradle.api.tasks.JavaExec import static me.tatarka.RetrolambdaPlugin.checkIfExecutableExists @@ -63,6 +64,8 @@ public class RetrolambdaPluginJava implements Plugin { "-Dretrolambda.bytecodeVersion=${project.retrolambda.bytecodeVersion}", "-javaagent:${classpath.getAsPath()}" ] + + logging.captureStandardOutput(LogLevel.INFO) } // Set the output dir back so subsequent tasks use it