Gradle 基于构建变量的java项目梯度依赖关系管理
我正在使用gradle构建一个JavaSpring项目。我想做的是: 如果生成目标为dev或未指定,请使用依赖项 编译(“org.hsqldb:hsqldb”) 如果构建目标是prod或qa,则使用依赖关系 编译(“mysql:mysql连接器java:5.1.31”)Gradle 基于构建变量的java项目梯度依赖关系管理,gradle,Gradle,我正在使用gradle构建一个JavaSpring项目。我想做的是: 如果生成目标为dev或未指定,请使用依赖项 编译(“org.hsqldb:hsqldb”) 如果构建目标是prod或qa,则使用依赖关系 编译(“mysql:mysql连接器java:5.1.31”) 我不知道在格拉德尔该怎么做。第一件事是如何将构建类型变量传递给构建脚本。第二件事是如何基于变量编写条件依赖代码?提前感谢。build.gradle是一个Groovy文件,因此您可以使用if语句动态更改依赖项,如下所示: depe
我不知道在格拉德尔该怎么做。第一件事是如何将构建类型变量传递给构建脚本。第二件事是如何基于变量编写条件依赖代码?提前感谢。
build.gradle
是一个Groovy文件,因此您可以使用if
语句动态更改依赖项,如下所示:
dependencies {
// other dependencies
if (someFlag) {
compile("org.hsqldb:hsqldb")
} else {
compile("mysql:mysql-connector-java:5.1.31")
}
}
要配置类似于此的内容,可以使用:
现在,当gradle与-PtargetEnv=qa
或-PtargetEnv=prod
、hsqldb一起运行时,将使用mysql依赖关系,用于未指定或未设置targetEnv
的情况,最后,如果传递了未知的环境名称,将引发异常
dependencies {
// other dependencies
if (!project.hasProperty("targetEnv") || targetEnv == "dev") {
compile("org.hsqldb:hsqldb")
} else if (targetEnv == "prod" || targetEnv == "qa") {
compile("mysql:mysql-connector-java:5.1.31")
} else {
throw new InvalidUserDataException("Unknown target environment '$targetEnv'")
}
}