2

我是 Gradle 环境中的新手,我正在开发一个在application.properties文件中具有属性扩展的 Spring 应用程序,例如:server.port = $ {app_server_port}

一切正常,当我使用gradle build命令构建时,Gradle 获取文件~ / .gradle / gradle.properties并将变量展开到构建的application.properties文件中。

我的问题是:

  • 你怎么能防止财产扩张?
  • 是否有任何命令行参数gradle build会使其忽略~ / .gradle / gradle.properties并使用原始值构建源?
  • 有类似的东西gradle build --skip-global-settings吗?

谢谢

4

1 回答 1

1

您可以像这样编写构建脚本:

apply plugin: 'java'

def props = new Properties()
file("local.properties").withInputStream { props.load(it) }

processResources {
  if (project.hasProperty('expand'))
    expand(props)
}

现在,如果您使用gradlew build -Pexpand属性扩展进行构建,则将使用来自local.properties.

如果您在gradlew build没有财产的情况下进行扩建,将会发生。


作为说明,我建议不要将项目特定属性放入~ / .gradle / gradle.properties,因为此文件在您在计算机上构建的所有项目之间共享。

于 2017-11-12T08:21:09.243 回答