2012-11-11 67 views
6

我想了解如何使用Gradle構建Android應用程序。令我驚訝的是,我發現了兩個參考文獻,一個來自jvoegele,另一個來自Android Tools Project網站。他們似乎是不同的初步證據。所以我的問題是爲什麼有兩個變種?兩者之間有任何關係嗎?他們目前的狀況如何?我應該使用哪一個 - 他們的優點和缺點?這似乎是Android的剛剛起步。我找到了兩個gradle android插件 - 兩者之間有任何關係嗎?

我期待着一些有第一手體驗使用Gradle構建Android應用程序的人的寶貴意見。

感謝和問候

Santanu

+0

我急切地期待得到一些反饋。哪些Gradle插件人員通常用於構建Android項目? 在此先感謝。 – Santanu

回答

1

我只是從Android工具項目工地gradle這個插件玩耍,感覺很很難搞清楚事情應該如何工作。它不是很好的集成到eclipse開發工作流程中,即使默認的eclipse的項目配置也不適合我。可以通過擴展項目和類路徑文件創建並修改Gradle構建文件中的項目佈局來解決此問題。

爲了固定eclipse項目創建我被從jvoegele插件的啓發(學分去那裏):

eclipse{ 
    project { 
     natures "com.android.ide.eclipse.adt.AndroidNature" 

     def builders = new LinkedList(buildCommands) 
     builders.addFirst(new BuildCommand("com.android.ide.eclipse.adt.PreCompilerBuilder")) 
     builders.addFirst(new BuildCommand("com.android.ide.eclipse.adt.ResourceManagerBuilder")) 
     builders.addLast(new BuildCommand("com.android.ide.eclipse.adt.ApkBuilder")) 
     buildCommands = new ArrayList(builders) 
    } 
    classpath { 
     containers.removeAll { it == "org.eclipse.jdt.launching.JRE_CONTAINER" } 
     containers "com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" 

     plusConfigurations += configurations.compile 

     file { 
      whenMerged { classpath -> 
       classpath.entries.removeAll { it instanceof SourceFolder && (it.dir?.path == "gen" || it.dir?.path == "src") } 
       classpath.entries.add(new SourceFolder("gen", null)) 
       classpath.entries.add(new SourceFolder("src", null)) 
      } 
     } 
    } 
} 

如果你想使你的項目快速取得成效,這是插件不適合你。

+0

感謝您的反饋0x0me! Android工具項目在我看來也是「正在進行中」。我不想與Eclipse集成,我只想爲我的Android項目建立一個命令行構建系統。所以看來我會使用jvoegele的插件。但令我驚訝的是,爲什麼Android團隊和jvoegele沒有想出合併這兩個插件的計劃,因此Android上只有一個gradle插件。這很有道理,因爲jvoegele爲創建插件付出了很多努力。 – Santanu

0

從長遠來看,我肯定會去Android Tools項目;它確實在進行中,但Android工具組正在非常積極地開展工作。他們打算將此作爲當前螞蟻構建系統的替代方案

1

jvoegele的原始Android gradle插件是no longer supported,但com.android.tools.build插件之間的功能差距正在縮小。