是否可以使用Eclipse的Gradle构建系统与Eclipse?

Chr*_*ris 23 eclipse android gradle

我有一个应用程序,需要为不同的客户使用不同的资源多次构建(品牌,配置和客户之间预先加载的数据更改).

在今年的Google I/O之后,我听说过基于Gradle的新Android构建系统.所以我想,使用Gradle构建脚本实现这个单源/多apks场景是个好主意.

现在我的问题出现了:如何在坚持Eclipse的同时开始使用Gradle进行构建?我在网上发现的所有读取都指向将项目转换为仍然不成熟的Android Studio.我想推迟迁移到Android Studio,直到被Google声称"安全"用于生产.

理想情况下,我希望能够将构建脚本挂钩到Eclipse的调试和运行配置,这与我可以选择的方式非常相似,并选择不同的构建目标来在XCode中进行调试和存档.如果可能的话,需要采取哪些步骤来完成这项工作?

我为这些问题的无聊质量道歉,但对我而言,这实际上是一个相当未被发现的国家.任何帮助表示赞赏.

编辑: 我们的团队已于2013年10月下旬迁移到Android Studio,因为版本0.4正在遇到越来越少的错误.如果您的组织对于采用1.0之前的环境进行开发并不过于保守,我建议您尽量避免使用Android Studio及其Gradle构建系统.缺少恕我直言的唯一重要的事情是对单元测试的体面支持.

Pau*_*est 24

可以使用2个构建系统(基于Eclipse + gradle).只需确保输出文件夹不同(bin对于ADT,build对于gradle).(更新TL; DR:检查Nodeclipse/Enide Gradle for Eclipse (市场))

File -> Export -> Generate Gradle build files将添加build.gradle下面的内容(但检查版本).没有更改现有文件.

com.android.tools.build:gradle版本应该是最新的.对于gradle类型,gradle buildhttp://tools.android.com/tech-docs/new-build-system/user-guide中所述.尝试gradle tasks更多.(在我缓慢的Internet连接上花了1个小时!为gradle下载所有需要的依赖项)

Vogella教程http://www.vogella.com/articles/AndroidBuild/article.html尚未准备好.其他在线教程还没有真正完成http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/

Eclipse ADT尚未使用gradle,我认为它将首先在Android Studio中完善.在两个IDE中同时开始使用不断发展的技术并不是那么明智.

build.gradle下面的例子.如果你已经掌握了gradle,那么根本不需要巫师.对于build.gradle经典Android项目的最新模板,请检查gh.c/N/n-1/b/m/oneeg/docs/android/build.gradle.

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

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 8
    buildToolsVersion "19.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}
Run Code Online (Sandbox Code Playgroud)

Eclipse Marketplace不附带ADT-Bundle,因此可以使用更新站点.

更新用于Eclipse的Gradle Integration的 p2存储库是

http://dist.springsource.com/release/TOOLS/gradle

但是从版本3.4.0开始,它不为.gradle文件提供编辑器.所以对于Android开发没有任何意义.

我会使用默认的ADT构建,将gradle作为实验的辅助构建,并在http://tools.android.com/tech-docs/new-build-system上的错误流量变得罕见时保持关注.(那应该是正式1.0版本)

更新时间:2014-04-15

Alex Ruiz(来自Android团队)关于Android,Gradle和ADT的博客

Android的Gradle模型

我们决定使用与Gradle项目无关的IDE表示,而不是创建特定于IDE的Android/Gradle模型.这样,我们就拥有了一个易于维护的单一信息源.IDE集成将作为每个支持的IDE(在我们的例子中,Eclipse和IDEA)的插件实现.这种方法的主要好处是我们可以独立于IDE集成插件发布Gradle插件.例如,我们可以发布一个新版本的Eclipse插件,该插件具有多个错误修复,而不会影响Android的Gradle端.

截至2014年4月,eclipse-gradle插件与android-gradle插件不兼容:

正如Android团队在问题57668中所回答的那样(由@arcone提出)

项目成员#2 x ... @ android.com

eclipse插件与android插件不兼容.

您将无法使用Eclipse中的默认Gradle支持将Android gradle项目导入Eclipse.

为了使它在Eclipse中工作,我们将不得不更改Eclipse的Gradle插件,就像我们在IntelliJ中修改Gradle支持一样

那就是Android团队正在开发IntelliJ的gradle插件,Eclipse的gradle插件也需要更新.

努力在Nodeclipse平滑的过渡时间.并继续在Eclipse中开发,同时仍在试验或完全使用gradle.

用于Eclipse的Nodeclipse/Enide Gradle (市场)

Gradle for Eclipse的一些截图:

  • 哇,谢谢你更新答案.与此同时,我们的团队已完全迁移到Android Studio,我们非常高兴.我认为这个答案对于正在研究Android构建系统难题的任何其他开发者都非常有帮助.再次感谢! (2认同)