我找到了两个 gradle android 插件 - 两者之间有啥关系吗?
Posted
技术标签:
【中文标题】我找到了两个 gradle android 插件 - 两者之间有啥关系吗?【英文标题】:I find two gradle android plugin - Is there any relation between the two?我找到了两个 gradle android 插件 - 两者之间有什么关系吗? 【发布时间】:2012-10-31 05:15:35 【问题描述】:我试图了解如何使用 Gradle 构建 android 应用程序。令我惊讶的是,我找到了两份参考资料,一份来自jvoegele,另一份来自Android Tools Project 网站。从表面上看,它们似乎是不同的。所以我的问题是为什么有两种变体?两者之间有什么关系吗?他们目前的状态如何?我应该使用哪一个 - 它们的优点和缺点?安卓的好像才刚刚开始。
我期待有使用 Gradle 构建 Android 应用程序的第一手经验的人提供一些有价值的意见。
感谢和问候
桑塔努
【问题讨论】:
我急切地等待得到一些反馈。人们通常使用哪个 Gradle 插件来构建 Android 项目?提前致谢。 【参考方案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))
如果你想让你的项目快速高效,这个插件不适合你。
【讨论】:
感谢您的反馈 0x0me! Android 工具项目在我看来也是“进行中的工作”。我不想与 Eclipse 集成,我只想为我的 Android 项目提供一个命令行构建系统。所以看来我应该使用 jvoegele 的插件。但令我惊讶的是,为什么 Android 团队和 jvoegele 没有提出一些计划来合并这两个插件,以便只有一个适用于 Android 的 gradle 插件。这是有道理的,因为 jvoegele 在创建插件方面付出了很大的努力。【参考方案2】:jvoegele 最初的 Android gradle 插件是no longer supported,但com.android.tools.build
插件之间的功能差距正在缩小。
【讨论】:
【参考方案3】:从长远来看,我肯定会选择 Android 工具项目;它确实在进行中,但 android 工具组正在非常积极地致力于它。他们打算将此作为当前 ant 构建系统的替代方案
【讨论】:
以上是关于我找到了两个 gradle android 插件 - 两者之间有啥关系吗?的主要内容,如果未能解决你的问题,请参考以下文章
Android 基于Gradle 7.4.2,自定义插件示例
Gradle 无法安装 - Gradlew InstallDebug 失败插件,ID 为“...”未找到
在android studio中将firebase添加到flutter时出错:插件项目:firebase_core_web未找到。请更新 settings.gradle [重复]