【Gradle】通过 idea 快速搭建 springboot gradle项目
最终效果
版本配置文件 dependency.gradle
/**
* ===================================================================================================================
* ------------------------------------------- 统一资源版本控制 ----------------------------------------------
* ===================================================================================================================
*/
def version = [
JDK : JavaVersion.VERSION_1_8, //JDK
JDBC : '6.0.6', //JDBC
SPRING_BOOT : '2.0.1.RELEASE', //spring boot 全家桶版本
SPRING_BOOT_MODELMAPPER: '1.1.0', //对象映射工具modelMapper
SPRING_BOOT_MYBATIS : '1.3.2', //mybatis-spring-boot
SPRING_BOOT_DRUID : '1.1.9', //druid和spring-boot整合包
SPRING_CLOUD : 'Finchley.RELEASE', //spring cloud全家桶
ALI_DRUID : '1.1.9', //阿里巴巴druid
ALI_FASTJSON : '1.2.47', //阿里巴巴fastJson
PAGEHELPER : '1.2.3', //分页插件
APACHE_COMMON_LANG3 : '3.4', //apache common lang3
APACHE_COMMON_IO : '2.6', //Apache Commons IO库包含实用程序类,流实现,文件过滤器,文件比较器,endian转换类等等.
LOMBOK : '1.18.10', //lombok版本
MYSQL : '6.0.6' , //mysql数据库版本
DOM4J : '1.6.1' , //dom4j版本
jaxen : '1.1.6' , //jaxen版本
LANG3 : '3.9' , //commons-lang3版本
LOG_BACK : '1.1.7' , //logback日志
MYBATIS_PLUS : '3.3.1.tmp' //mybatis-plus版本
]
//统一文件编码控制
def encoding = [
OPTIONS: 'UTF-8'
]
//暴露参数
ext.custom = [
version : version,
encoding: encoding,
]
build.gradle
/**
* ===================================================================================================================
* ------------------------------------------- 引入项目插件 ----------------------------------------------
* ===================================================================================================================
*/
plugins {
id 'org.springframework.boot' version '2.2.6.RELEASE' //spring提供的spring boot插件,主要用到了其依赖管理的功能.
id 'io.spring.dependency-management' version '1.0.9.RELEASE' //spring jar版本管理
id 'java' //java插件
id 'maven-publish' //该插件可以将打包的jar发送到maven库
}
/**
* ===================================================================================================================
* ------------------------------------------- 所有项目的通用配置 ----------------------------------------------
* ===================================================================================================================
*/
configure(allprojects) { project ->
//项目基础属性
group 'com.emodernhy' //项目所属组织
version '1.0-SNAPSHOT' //项目版本号
//引入插件
apply plugin: 'java' //java插件
apply plugin: 'maven' //maven插件
apply plugin: 'idea' //IDEA插件
apply plugin: 'eclipse' //eclipse插件
apply plugin: 'org.springframework.boot' //spring boot插件
apply plugin: 'io.spring.dependency-management' //实现maven的依赖统一管理功能
apply from: "${rootProject.rootDir}/dependency.gradle" //引入jar包版本配置文件
//JDK版本声明
sourceCompatibility = custom.version.JDK
targetCompatibility = custom.version.JDK
//配置仓库
repositories {
mavenLocal()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://repo.spring.io/libs-snapshot' }
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
mavenCentral()
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
//指定项目编码
tasks.withType(JavaCompile) {
options.encoding = "${custom.encoding.OPTIONS}"
}
//在多模块下,授权打包依赖模块
jar {
enabled = true
}
//重打包基础配置
bootJar {
// mainClassName = "jpanda.cloud.EurekaServer"
launchScript()
archiveName = "${project.group}_${project.name}_${project.version}.jar"
}
}
/**
* ===================================================================================================================
* ------------------------------------------- 所有所有项目的通用配置 ---------------------------------------------
* ===================================================================================================================
*/
configure(allprojects) {
project ->
dependencyManagement {
//定义版本
dependencies {
/**
* lombok
*/
dependency "org.projectlombok:lombok:${custom.version.LOMBOK}"
/**
* 阿里巴巴druid数据库连接池
*/
dependency "com.alibaba:druid:${custom.version.ALI_DRUID}"
/**
* mysql数据库驱动
*/
dependency "mysql:mysql-connector-java:${custom.version.MYSQL}"
/**
* dom4j xml解析
*/
dependency "dom4j:dom4j:${custom.version.DOM4J}"
/**
* JAVA 内省jaxen
*/
dependency "jaxen:jaxen:${custom.version.jaxen}"
/**
* commons-lang3
*/
dependency "org.apache.commons:commons-lang3:${custom.version.LANG3}"
/**
* MyBatis-Plus 的代码生成器
*/
dependency "com.baomidou:mybatis-plus-generator:${custom.version.MYBATIS_PLUS}"
/**
* logback 日志
*/
dependency "ch.qos.logback:logback-core:${custom.version.LOG_BACK}"
dependency "ch.qos.logback:logback-classic:${custom.version.LOG_BACK}"
}
}
}
configure(allprojects) {
project ->
/**
* -============================================================================================================
* -=====================================所有模块的公共依赖==================================================
* -============================================================================================================
*/
dependencies {
/**
* -=================================================================================-
* - ******************** 基本相关依赖 *************************** -
* -=================================================================================-
*/
//使用lombok来简化掉编码过程中的通用的方法.
implementation 'org.projectlombok:lombok'
//commons-lang3工具包
implementation 'org.apache.commons:commons-lang3'
}
configure(subprojects) {
project ->
/**
* -============================================================================================================
* -=====================================子模块的公共依赖==================================================
* -============================================================================================================
*/
dependencies {
/**
* -=================================================================================-
* - ******************** 项目所需依赖 *************************** -
* -=================================================================================-
*/
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
}