使用Gradle调试/发布Java构建的示例?

使用Gradle调试/发布Java构建的示例?,java,gradle,Java,Gradle,我正在使用(或试图使用)Gradle构建一个简单的Java(非Android)多模块项目,其中包含一个CLI和几个微服务。我有一个简单的、单一配置的构建 我希望能够以两种不同的方式构建它:使用一组设置和依赖项的“开发”构建,以及使用不同设置和依赖项的“部署”构建。某些设置和依赖项将在两者之间重叠 在其他构建工具中,这将对应于“调试”和“发布”构建配置。但对于Gradle来说,我看到了构建类型、变体、风格和功能,以及所有这些的组合,其中一些似乎是Android特有的,一些依赖于似乎已经过时的插件。

我正在使用(或试图使用)Gradle构建一个简单的Java(非Android)多模块项目,其中包含一个CLI和几个微服务。我有一个简单的、单一配置的构建

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

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

我有一个简单的方法,使用手动创建的
buildDebug
buildRelease
assembleDebug
assembleRelease
等任务,但感觉我是在围绕Gradle而不是它工作


有没有人愿意分享他们的工作?非常感谢

这看起来像是我早期的搜索(即“gradle调试和发布版本”)和我对gradle内置内容的期望让我陷入了错误的境地。直到我想到搜索“相当于maven构建概要文件的gradle”之后,我才最终偶然发现了它

我可能错过了我可以利用的渐变功能(即变体),但正确的解决方案可能是:

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

dependencies {
  // shared dependencies
  if (env == 'debug') {
    // debug build dependencies
  }
  if (env == 'release') {
    // release build dependencies
  }
}
通过在命令行上设置
env
属性来选择生成:

#调试构建;你可以用任何一种
$gradle构建
$gradle build-Penv=debug
#发布版本
$gradle build-Penv=发布

希望这能帮助一位毕业生新手。

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