我的项目包含多个 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" 
        } 
    } 
} 

现在,您可以在不指定版本的情况下将依赖项添加到子模块。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!