【发布时间】:2015-05-19 14:52:33
【问题描述】:
Android Gradle 插件增加了对构建类型和构建变体的支持,让您可以在构建步骤(例如,调试或发布)选择要构建的应用程序版本。
这对于 Gradle 项目来说是一个非常有用的功能,因为您可以拥有 2 个版本的应用程序,它们在某些情况下的行为可能会有所不同,或者根据构建类型具有不同的配置文件或属性。
现在,我的问题是:来自 Maven 或 Gradle 的非 Android Java 项目是否有类似的功能/实现?我正在专门寻找 Java Web 应用程序,但我认为这个问题也可能有更大的目标。
【问题讨论】:
-
Maven 有配置文件。 Gradle 是编程的,因此自定义代码选择配置(或提供支持的插件)。
-
据我所知,Maven 配置文件只允许管理 pom.xml 文件的不同配置。 Android Gradle 插件不仅为您提供了一个 BuildConfig 类,您可以在代码中的任何位置使用它来检查当前正在运行的构建类型,它还提供了为 any指定构建类型特定文件的能力> 项目中的文件。与此相比,maven 的配置文件看起来就像一个完整的儿童玩具。还是我错过了什么?关于 Gradle,我还没有真正理解你的意思。
-
如果构建不符合其先入为主的期望,Maven 将非常脆弱。配置文件是一种强制不同流程的黑客。对于 Gradle,我的意思是,由于您可以编写 Groovy 代码,因此很容易根据标志自定义构建和任务图。插件就是为重用而打包的相同 Groovy 代码。如果不存在适用于您的案例的现有插件,则可以通过首先清除构建文件中的代码然后迁移到自定义插件以供其他人使用来轻松编写一个。
-
我真的不相信您理解我所说的 BuildConfig 和每种构建类型的特定文件的意思,因此您的答案如此含糊。长话短说,这两个构建系统都没有提供此功能。这里希望 Gradle 能够以与 Google 使用其 Android 插件相同的方式实现变体功能。
标签: java maven jakarta-ee gradle