14

帮我在 Android Studio 的 build.gradle 中设置 comile 依赖项。我的意思是它们不包含在最终的 APK 中。

这个 build.gradle 工作正常,但我不需要

龙目岛

运行时 apk 中的库;

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    } }

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'org.projectlombok:lombok:1.12.2' }

是否可以在所有项目的全局 build.gradle 文件中设置?

4

4 回答 4

13

在 Android Studio 1.1.0 中,我找不到一套对我有用的添加 Lombok 的综合说明。这包括 Lombok 自己的设置页面:http ://projectlombok.org/setup/android.html

这是我必须做的一切才能让它工作(在 OS X 上):

  • 在 Android Studio 中安装 Lombok 插件
    • Android Studio > 首选项 > 插件
    • 点击Browse repositories...
    • 搜索龙目岛插件
    • 点击Install plugin
    • 重启 Android Studio
  • 添加到 app/build.gradle 中的 android/dependencies 块:provided 'org.projectlombok:lombok:1.16.2'
    • 有关最新版本,请参阅search.maven.org,因为 lombok 的说明在发布新版本时不会更新
    • 我假设subprojects项目根目录中 build.gradle 中的方法(来自 Олександр Самсонов 的答案)也有效,但似乎需要从 app/build.gradle 移动配置(不允许您进一步扩展子项目中的配置) . 我不想移动整个 android 配置,所以我将它保存在 app/build.gradle 中。
  • lombok.config在项目的根目录中 创建一个包含两行的文件:lombok.anyConstructor.suppressConstructorProperties = true lombok.addGeneratedAnnotation = false
于 2015-04-16T00:05:33.070 回答
6

执行此操作的功能刚刚添加到 v0.8 Android-Gradle 插件中,如果您运行的是 Android Studio 0.4.3(可在 canary 更新频道上获得),则可以使用该插件。

它在发行说明adt-dev 邮件列表中的一个线程中提到

您可以这样指定它:

dependencies {
    provided 'org.projectlombok:lombok:1.12.2'
}

我已经提交了错误https://code.google.com/p/android/issues/detail?id=65216以请求能够通过“项目结构”对话框中的“依赖项”面板进行编辑;目前,您必须手动编辑build.gradle文件才能使用它。

至于能不能放到最顶层的build.gradle文件中,让它应用到所有模块,我不确定。我尝试将其放入allprojects块中,但 Gradle 告诉我默认依赖处理程序不知道如何处理它。所以我猜不是,但如果我得到其他信息,我会更新这个答案。

于 2014-01-25T00:27:47.687 回答
3

对于Android 工作室

  1. 转到文件 > 设置 > 插件
  2. 单击“浏览存储库...”
  3. 搜索“龙目岛插件”
  4. 点击“安装插件”
  5. 重启 Android Studio
于 2016-08-12T21:41:59.317 回答
2

我通过更改gradle-wrapper.propertiesgradle 文件夹中的文件来解决此问题。现在看起来像这样:

#Sat Jan 25 02:59:06 EET 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip

在主build.gradle文件中我可以为龙目岛写这个

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

subprojects {
    apply plugin: 'android'

    buildscript {
        repositories {
            mavenCentral()
        }
    }

    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"

        defaultConfig {
            minSdkVersion 10
            targetSdkVersion 16
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }

    dependencies {
        compile 'com.android.support:appcompat-v7:+'
        provided 'org.projectlombok:lombok:1.12.2'
    }
}

现在在子项目中我不需要为插件或存储库编写很多参数,并且提供的方法工作得很好。

于 2014-01-25T01:09:02.153 回答