从命令行重写gradle project.ext参数
我有一个gradle构建,其中我使用另一个gradle文件的属性: 格雷德尔先生 props.gradle只是groovy语法文件中的一组属性:从命令行重写gradle project.ext参数,gradle,groovy,Gradle,Groovy,我有一个gradle构建,其中我使用另一个gradle文件的属性: 格雷德尔先生 props.gradle只是groovy语法文件中的一组属性: ext { jdbcJarFile = "/jdbc/lib/ojdbc6.jar" system_oracle_driver = "oracle.jdbc.driver.OracleDriver" system_db_admin_user = "system" } 在以后的构建中,我可以访问以下属性: project.pro
ext {
jdbcJarFile = "/jdbc/lib/ojdbc6.jar"
system_oracle_driver = "oracle.jdbc.driver.OracleDriver"
system_db_admin_user = "system"
}
在以后的构建中,我可以访问以下属性:
project.property("jdbcJarFile")
我需要的是一种从命令行重写props.gradle
中定义的任何属性的方法
例如
但当我尝试这个方法时,仍然会在props.gradle
中声明值
我需要能够覆盖每个属性,并且我在该文件中有几十个属性。这里不允许手动检查每个属性
我怎样才能解决这个问题
Gradle版本为2.12。您认为必须更改
道具。Gradle
检查属性,如果未在命令行上设置,则设置ext.jdbcJarFile
,即:
if(!hasProperty('jdbcJarFile')) {
ext.jdbcJarFile = "/jdbc/lib/ojdbc6.jar"
}
ext {
system_oracle_driver = "oracle.jdbc.driver.OracleDriver"
system_db_admin_user = "system"
}
要以更简洁的方式设置此属性,请将
props.gradle
更改为:
ext {
jdbcJarFile = "/jdbc/lib/ojdbc6.jar"
system_oracle_driver = "oracle.jdbc.driver.OracleDriver"
system_db_admin_user = "system"
}
例如:
def defaultProperty(String name, defaultValue) {
if(!hasProperty(name)) {
ext."$name" = defaultValue
}
}
defaultProperty 'jdbcJarFile', '/jdbc/lib/ojdbc6.jar'
defaultProperty 'system_oracle_driver', 'oracle.jdbc.driver.OracleDriver'
defaultProperty 'system_db_admin_user', 'system'
但是我需要能够覆盖每个属性,并且我在该文件中有几十个属性。您需要重写
props.gradle
脚本以使用上面链接中所示的函数
ext {
jdbcJarFile = "/jdbc/lib/ojdbc6.jar"
system_oracle_driver = "oracle.jdbc.driver.OracleDriver"
system_db_admin_user = "system"
}
def defaultProperty(String name, defaultValue) {
if(!hasProperty(name)) {
ext."$name" = defaultValue
}
}
defaultProperty 'jdbcJarFile', '/jdbc/lib/ojdbc6.jar'
defaultProperty 'system_oracle_driver', 'oracle.jdbc.driver.OracleDriver'
defaultProperty 'system_db_admin_user', 'system'