我的项目包含多个 grails 服务、插件和库,所有这些都是用 gradle 构建的,它们的依赖关系在 build.gradle 中声明文件,每个项目一个,我希望这是有道理的。
在 maven 中,我曾经能够在一个父项目 pom 或 pom 模板中声明所有依赖项的版本,并且只在需要它们的项目中包含依赖项而没有版本。这使得在一个地方轻松升级依赖项。有没有一种简单的方法可以在 gradle 中做到这一点?
伪代码示例:
master_template/build.gradle
dependencies {
joda-time:joda-time:2.9.1
cglib:cglib:3.2.9
javax.servlet:javax.servlet-api:3.1.0
}
service_a/build.gradle
parent: master_template
dependencies {
joda-time:joda-time
javax.servlet:javax.servlet-api
}
service_b/build.gradle
parent: master_template
dependencies {
cglib:cglib
javax.servlet:javax.servlet-api
}
请您参考如下方法:
您可以创建 multi module project就像您在 Maven 中使用父 pom 所做的那样。
为了管理父级中的依赖关系,我使用 spring dependency management plugin .
你家长build.gradle看起来像:
subprojects {
apply plugin: "io.spring.dependency-management"
sourceCompatibility = 1.8
targetCompatibility = 1.8
check.dependsOn dependencyCheckAggregate
repositories {
mavenLocal()
jcenter()
// other repos
}
dependencyManagement {
def jacksonVersion = "2.+"
dependencies {
dependency "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
dependency "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
dependency "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion"
dependency "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$jacksonVersion"
dependency "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$jacksonVersion"
}
}
}
现在,您可以在不指定版本的情况下将依赖项添加到子模块。




