使用Gradle 构建Java Web项目中的一些疑问

新手上路,请多包涵

最近打算使用Gradle来管理接手的Java Web项目,实际使用中有如下几个疑问:

  1. 存在多个Java项目,旧代码中项目之间已经形成了循环依赖的关系,如需全量构建如何配置dependencies?如果配置循环依赖比较复杂,Gradel有没有比较简单的方式(现成的plugin)实现几个Java项目合并编译?

  2. 生产环境采用的是增量上线,Gradle可以抽取增量包吗?

阅读 5.2k
2 个回答

可以去看看 一些开源项目里gradle的配置,比如 spring framework的。

我用过的一种方法是 专门写一个dependencies.gradle文件,里面定义一些 共用的dependency,然后在 submodule中引用

ext {
    versions = [:]
    libraries = [:]
}

versions.common_lib="1.0.0-SNAPSHOT"

libraries.slf4j=dependencies.module('org.slf4j:slf4j-android:1.6.1-RC1')
libraries.protobuf=dependencies.module('com.google.protobuf:protobuf-java:2.6.1')

libraries.common_lib=dependencies.module('com.aaa:common-lib:'+versions.common_lib) {
    exclude group: 'commons-logging', module: 'commons-logging'
    exclude group: 'org.slf4j', module: 'slf4j-api'
}

submodule中可以直接 include 上面文件后声明依赖,

dependencies {
    compile libraries.common_lib
    compile project(':lib-common')
    compile project(':lib-data')
}

也可以 在 项目根目录中(这种方式 在gradle源码中有 使用 )

subprojects {
     .....
    apply from: "$rootDir/gradle/dependencies.gradle"
}

如果原先用maven管理的话,直接在项目根目录下执行:gradle init wrapper

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题