gradle 多项目构建总结
一、根项目集中配置
适用于简单项目,模块嵌套较少
1.1 项目结构
1.2 settings.gradle
include 'model', 'repository', 'web'
1.3 build.gradle
// 声明模块公用属性
ext.projectIds = ['group': 'com.manning.gia', 'version': '0.1']
group = projectIds.group
version = projectIds.version
// 指定构建依赖
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.org.akhikhl.gretty:gretty:2.0.0"
}
}
// 为根项目和所有子模块指定配置
allprojects {
group = 'com.manning.gia'
version = '0.1'
}
// 为所有子模块指定Java插件
subprojects {
apply plugin: 'java'
}
project(':repository') {
// 设置repository在编译时依赖model,在build过程中,会自动按照这个顺序进行构造
dependencies {
compile project(':model')
}
}
project(':web') {
apply plugin: 'war'
apply plugin: "org.akhikhl.gretty"
repositories {
jcenter()
}
dependencies {
// web依赖于reposetory
compile project(':repository')
providedCompile 'javax.servlet:servlet-api:2.5'
runtime 'javax.servlet:jstl:1.1.2'
}
}
二、子项目独立构建
适用于复杂情况
2.1 项目结构
2.1 根项目构建文件
2.1.1 build.gradle
allprojects {
group = 'com.manning.gia'
version = '0.1'
}
subprojects {
apply plugin: 'java'
}
2.1.2 settings.gradle
// 引用子项目
include 'todo-model', 'todo-repository', 'todo-web'
rootProject.name = 'todo'
// 设置子项目的构建脚本文件名
rootProject.children.each {
it.buildFileName = it.name + '.gradle' - 'todo-'
}
2.2 todo-model:build.gradle
//空
2.3 todo-model:repository.gradle
dependencies {
// repository 依赖于model
compile project(':todo-model')
}
2.4 todo-model:web.gradle
apply plugin: 'war'
// 指定构建依赖
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.org.akhikhl.gretty:gretty:2.0.0"
}
}
apply plugin: "org.akhikhl.gretty"
repositories {
jcenter()
}
dependencies {
// web 依赖于repository
compile project(':todo-repository')
providedCompile 'javax.servlet:servlet-api:2.5'
runtime 'javax.servlet:jstl:1.1.2'
}
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
发布时间:2020年01月29日 10:46:32
备案号:
闽ICP备19015193号-1
关闭特效
评论区#
还没有评论哦,期待您的评论!
引用发言