Gradle Retrolambda Plugin
========================
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/me.tatarka/gradle-retrolambda/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/me.tatarka/gradle-retrolambda)
This plugin will automatically build your java or *android* project with
retrolambda, giving you lambda goodness on java 6 or 7. It relies on the
wonderful [retrolambda](https://github.com/orfjackal/retrolambda) by Esko
Luontola.
Note: The minimum android gradle plugin is `1.5.0` and the minimum gradle plugin is `2.5`.
Usage
----
1. Download [jdk8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) and set it as your default.
2. Add the following to your build.gradle
```groovy
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.7.1'
}
}
// Required because retrolambda is on maven central
repositories {
mavenCentral()
}
apply plugin: 'com.android.application' //or apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'
```
alternatively, you can use the new plugin syntax for gradle `2.1+`
```groovy
plugins {
id "me.tatarka.retrolambda" version "3.7.1"
}
```
3. There is no step three!
The plugin will compile the source code with java8 and then replace the class
files with the output of retrolambda.
Configuration
-------------
You can add a block like the following to configure the plugin:
```groovy
retrolambda {
javaVersion JavaVersion.VERSION_1_6
jvmArgs '-arg1', '-arg2'
defaultMethods false
incremental true
}
```
- `javaVersion` Set the java version to compile to. The default is 6. Only 5, 6 or 7 are accepted.
- `include 'Debug', 'Release'` Sets which sets/variants to run through
retrolambda. The default is all of them.
- `exclude 'Test'` Sets which sets/variants to not run through retrolambda. Only
one of either `include` or `exclude` should be defined.
- `jvmArgs` Add additional jvm args when running retrolambda.
- `defaultMethods` Turn on default and static methods in interfaces support. Note: due to a
limitation in retrolamba, this will set `incremental` to false. The default is false.
- `incremental` Setting this to false forces all of your class files to be run through retrolambda
instead of only the ones that have changed. The default is true.
### Using a Different Version of the retrolambda.jar
The default version of retrolambda used is
`'net.orfjackal.retrolambda:retrolambda:2.5.6'`. 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:+'
// Or a local version
// retrolambdaConfig files('libs/retrolambda.jar')
}
```
### Deprecated Features
If you are running with java 6 or 7 you should really consider updating. However, you may use the
below configuration instead.
Set the environment variable `JAVA8_HOME` to point to the java 8 jdk. Alternatively, you can set the
`jdk` property.
```groovy
retrolambda {
jdk System.getenv("JAVA8_HOME")
}
```
You can force unit tests to be run with an older version of java by setting
`JAVA5_HOME`/`JAVA6_HOME`/`JAVA7_HOME` or with the `oldJdk` property.
```groovy
retrolambda {
oldJdk System.getenv("JAVA6_HOME")
}
```
Android Studio Setup
--------------------
Add these lines to your `build.gradle` to inform the IDE of the language level.
```groovy
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
```
Proguard
----------
This plugin is fully compatible with proguard (since `v2.4.0`). In your proguard file, add
```
-dontwarn java.lang.invoke.*
-dontwarn **$$Lambda$*
```
Known Issues
---------------
### Lint fails on java files that have lambdas.
First try updating to the latest version of the android gradle plugin. Newer versions of lint are
compatible with java 8 sources. If you can't for some reason, you can still use the
[experimental fork](https://github.com/evant/android-retrolambda-lombok) to fix the issue.
### Using Google Play Services causes retrolambda to fail
Version `5.0.77` contains bytecode that is incompatible with retrolambda. This should be fixed in
newer versions of play services, if you can update, that should be the preferred solution. To work
around this issue, you can either use an earlier version like `4.4.52` or add `-noverify` to the jvm
args. See [orfjackal/retrolambda#25](https://github.com/orfjackal/retrolambda/issues/25) for more
information.
```groovy
retrolambda {
jvmArgs '-noverify'
}
```
Updates
-------
All updates have moved to the [CHANGELOG](https://github.com/evant/gradle-retrolambda/blob/master/CHANGELOG.md).
License
-------
Copyright 2013 Evan Tatarka
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
没有合适的资源?快使用搜索试试~ 我知道了~
用于在 Java 6、7 和 Android 中获取 Java Lambda 支持的 Gradle 插件.zip
共69个文件
java:23个
gradle:10个
groovy:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 99 浏览量
2024-11-25
04:43:49
上传
评论
收藏 150KB ZIP 举报
温馨提示
用于在 Java 6、7 和 Android 中获取 Java Lambda 支持的 Gradle 插件Gradle Retrolambda 插件该插件将自动使用 retrolambda 构建您的 java 或android项目,为您提供 java 6 或 7 上的 lambda 优点。它依赖于Esko Luontola 出色的retrolambda 。注意最小的 android gradle 插件是1.5.0,最小的 gradle 插件是2.5。用法下载jdk8并将其设置为默认值。将以下内容添加到您的 build.gradlebuildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.7.1' }}// Required because retrolambda is on maven centralrepositories { mavenCentra
资源推荐
资源详情
资源评论
收起资源包目录
用于在 Java 6、7 和 Android 中获取 Java Lambda 支持的 Gradle 插件.zip (69个子文件)
gradle-retrolambda
src
test
java
me
tatarka
GroovyPluginTest.java 7KB
JavaPluginTest.java 7KB
AndroidTestPluginTest.java 8KB
AndroidFeaturePluginTest.java 13KB
TestHelpers.java 4KB
AndroidLibPluginTest.java 13KB
AndroidAppPluginTest.java 25KB
main
resources
META-INF
gradle-plugins
me.tatarka.retrolambda.properties 49B
groovy
me
tatarka
RetrolambdaUtil.groovy 801B
RetrolambdaPluginJava.groovy 4KB
RetrolambdaExtension.groovy 5KB
RetrolambdaTask.groovy 3KB
RetrolambdaTransform.groovy 8KB
RetrolambdaPluginGroovy.groovy 4KB
RetrolambdaPlugin.groovy 3KB
RetrolambdaExec.groovy 6KB
RetrolambdaPluginAndroid.groovy 7KB
build.gradle 6KB
settings.gradle 40B
gradle.properties 80B
gradle
wrapper
gradle-wrapper.jar 54KB
gradle-wrapper.properties 230B
sample-java-default-methods
src
main
java
me
tatarka
retrolambda
sample
Interface.java 344B
Main.java 352B
build.gradle 624B
标签.txt 6B
LICENSE.txt 11KB
gradlew.bat 3KB
sample-android-app
src
androidTest
java
me
tatarka
sample
app
test
MainActivityInstrumentationTest.java 2KB
test
java
me
tatarka
retrolambda
sample
app
test
FunctionTest.java 1KB
main
ic_launcher-web.png 15KB
java
me
tatarka
retrolambda
sample
app
MyModule.java 826B
MainActivity.java 1KB
ResFunction.java 192B
MyComponent.java 180B
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher.png 11KB
mipmap-xhdpi
ic_launcher.png 4KB
values
strings.xml 117B
themes.xml 149B
layout
activity_main.xml 964B
AndroidManifest.xml 632B
proguard-rules.pro 52B
build.gradle 2KB
CHANGELOG.md 8KB
build.gradle 544B
settings.gradle 278B
sample-java
src
test
java
me
tatarka
retrolambda
sample
test
Test.java 399B
main
java
me
tatarka
retrolambda
sample
Function.java 148B
Main.java 294B
build.gradle 530B
gradlew 6KB
资源内容.txt 703B
test.sh 289B
.gitignore 43B
sample-android-test
src
main
java
me
tatarka
retrolamba
sample
test
MainActivityInstrumentationTest.java 2KB
AndroidManifest.xml 330B
build.gradle 1KB
sample-android-lib
src
main
java
me
tatarka
retrolambda
sample
lib
Lib.java 665B
Function.java 151B
AndroidManifest.xml 125B
build.gradle 950B
sample-android-feature
src
main
java
me
tatarka
retrolambda
sample
feature
Function.java 155B
Feature.java 681B
AndroidManifest.xml 129B
build.gradle 950B
README.md 5KB
共 69 条
- 1
资源评论
赵闪闪168
- 粉丝: 1563
- 资源: 3077
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功