我发现两个gradle android插件 - 两者之间有什么关系吗?

时间:2012-11-11 15:29:34

标签: android gradle build-system

我试图了解如何使用Gradle构建Android应用程序。令我惊讶的是,我找到了两个引用,一个来自jvoegele,另一个来自Android Tools Project网站。他们似乎表面上看起来不同。所以我的问题是为什么有两种变体?这两者之间有什么关系吗?他们目前的状况如何?我应该使用哪一个 - 它们的优点和缺点?似乎Android版刚刚开始。

我期待有一些宝贵的意见,他们拥有使用Gradle构建Android应用程序的第一手经验。

谢谢和问候

Santanu

3 个答案:

答案 0 :(得分: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))
            }
        }
    }
}

如果您希望快速提升项目效率,那么这个插件并不适合您。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

从长远来看,我肯定会选择Android工具项目;它确实在进行中,但是android工具组正在非常积极地开展工作。他们打算将此作为当前ant构建系统的替代方案