【问题标题】:Example of debug/release Java build using Gradle?使用 Gradle 调试/发布 Java 构建的示例?
【发布时间】:2020-08-23 03:12:28
【问题描述】:

我正在使用(或尝试使用)Gradle 来构建一个普通的 Java(不是 Android)多模块项目,其中包含一个 CLI 和几个微服务。我有一个简单的单一配置构建工作。

我希望能够以两种不同的方式构建它:具有一组设置和依赖项的“开发”构建,以及具有不同设置和依赖项的“部署”构建。一些设置和依赖关系会在两者之间重叠。

在其他构建工具中,这将对应于“调试”和“发布”构建配置。但是对于 Gradle,我已经看到了构建类型、变体、风格和功能,以及所有这些的组合——其中一些似乎是特定于 Android 的,一些依赖于似乎已经过时的插件。但我似乎找不到“传统”调试/发布构建设置的简单示例。

我有一个简单的方法,使用手动创建的buildDebugbuildReleaseassembleDebugassembleRelease 等任务,但感觉就像我在使用 Gradle 而不是在使用它。

有没有人有这样的例子愿意分享他们的工作?非常感谢!

【问题讨论】:

  • 有趣的要求!你能举一些更具体的例子吗?这些设置和依赖关系是什么?
  • 我担心更多细节可能会引发讨论。

标签: java gradle


【解决方案1】:

看起来我早期的搜索(即“gradle debug and release builds”)和我对 Gradle 内置的东西的期望让我陷入了错误的兔子洞。我终于偶然发现了this question,只是在我想到“gradle 相当于 maven 构建配置文件”之后才发现。

我可能缺少我可以利用的 Gradle 功能(即变体),但似乎正确的解决方案可能是:

ext {
  env = findProperty('env') ?: 'debug'
}

dependencies {
  // shared dependencies
  if (env == 'debug') {
    // debug build dependencies
  }
  if (env == 'release') {
    // release build dependencies
  }
}

通过在命令行上设置env属性来选择构建:

# debug build; can use either
$ gradle build
$ gradle build -Penv=debug

# release build
$ gradle build -Penv=release

希望对 Gradle 新手有所帮助。

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 2017-02-03
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    相关资源
    最近更新 更多