簡體   English   中英

是否可以使用Eclipse的Gradle構建系統與Eclipse?

[英]Is it possible to use the Gradle build system for Android with Eclipse?

我有一個應用程序,需要為不同的客戶使用不同的資源多次構建(品牌,配置和客戶之間預先加載的數據更改)。

在今年的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構建系統。 缺少恕我直言的唯一重要的事情是對單元測試的體面支持。

可以使用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,那么根本不需要巫師。 對於經典Android項目的最新build.gradle模板,請檢查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')
    }
}

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的一些截圖:

  1. 安裝Gradle:
    一種。 http://gradle.org/gradle-download/ b。 從先前版本部分選擇2.1。 C。 在方便的文件夾中解壓縮。(例如:D:\\ Graddle \\ gradle-2.1)d。 設置系統環境變量。 一世。 GRADLE_HOME為D:\\ Graddle \\ gradle-2.1)ii。 GRADLE_OPTS為-XX:MaxPermSize = 512m iii。 %GRADLE_HOME%\\ bin到路徑iv。 設置ANDROID_HOME(例如:D:\\ android-sdk)v。將“%ANDROID%\\ platform-tools”附加到路徑。

打開命令提示符並設置檢查gradle。 可以使用gradle -version來檢查。

  1. 安裝Gradle eclipse PlugIn:a。 啟動Eclipse b。 幫助> Eclipse Market Place c。 搜索“gradle”d。 在那里選擇“Nodeeclipse / enide”e。 選擇列出的所有內容,接受並安裝。 F。 安裝后重新啟動eclipse。

  2. 設置Gradle和Java Homes:a。 發射日食。 窗口>首選項> Gradle EnIDE c。 設置這些如果沒有設置:i。 設置Gradle home(Ex:D:\\ Graddle \\ gradle-2.1)ii。 設置要使用的備用JAVA_HOME(例如:C:\\ Program Files(x86)\\ Java \\ jdk1.7.0_60)iii。 GRADLE_OPTS的JVM選項設置為“-XX:MaxPermSize = 512m”

  3. 建設項目:a。 在eclipse Java explorer中展開APK。 右鍵單擊build.gradle c。 運行方式> Gradle GUI d。 Comand Line:gradle clean build e。 等待構建完成:第一次構建將需要幾分鍾。 F。 如果Build dex錯誤或Java堆空間錯誤:i。 在編輯器中打開build.gradle。 II。 對於多dex構建 - 根據您的java設置適當的javaMaxHeapSize(對於32位Java,javaMaxHeapSize = 1024M,對於64位Java,為2048M)。 可以評論簽名(// apply from:“$ rootProject.projectDir / jenkins_config / gradle / signing.gradle”;)以避免簽署調試版本。 IV。 在這些修復之后再次構建。

  4. 在設備上安裝Build:a。 將設備連接到m / cb右鍵單擊build.gradle c。 運行方式> gradle installDebug Gradle Android start d。 等待安裝完成

  5. 調試版本:a。 啟動應用程序b。 附加調試器(DDMS>設備>應用程序)。 C。 我們能夠在幾個設備上進行調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM