idea設置本地gradle

打包:

build.gradle
//聲明gradle腳本自身需要使用的資源,優先執行
buildscript {
ext {
springBootVersion = '2.1.4.RELEASE'
}
repositories {
// 本地maven倉庫
mavenLocal()
maven { url = 'http://maven.aliyun.com/nexus/content/groups/public/' }
//和maven中央倉庫一樣的另一個依賴管理倉庫,主要是java
jcenter()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
}
}
// allprojects 所有項目共享的配置
allprojects {
apply plugin: 'idea'
apply plugin: 'java-library'
version = '1.0'
sourceCompatibility = 11
targetCompatibility = 11
}
// subprojects : 所有子模塊共享的配置
subprojects {
apply plugin: 'java'
apply plugin: 'org.springframework.boot' //使用springboot插件
apply plugin: 'io.spring.dependency-management' //版本管理插件
// java編譯的時候缺省狀態下會因為中文字符而失敗
[compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
// 配置所有子模塊的依賴倉庫地址
repositories {
// 本地maven倉庫
mavenLocal()
maven { url = 'http://maven.aliyun.com/nexus/content/groups/public/' }
//和maven中央倉庫一樣的另一個依賴管理倉庫,主要是java
jcenter()
}
//所有子模塊共有依賴
dependencies{
implementation 'org.codehaus.groovy:groovy'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
}
settings.gradle
// 父項目名稱 rootProject.name = 'blog-system' // 導入子模塊 include 'blog-web','blog-service','blog-pojo','blog-dao','blog-admin'
使用api解決多重依賴
dao 模塊依賴
dependencies {
// 使用api 暴露依賴,對其他模塊可見,不用重復引用
api (project(':blog-pojo'))
api 'mysql:mysql-connector-java:8.0.15'
api 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1'
api 'com.zaxxer:HikariCP' // 連接池
api 'com.github.pagehelper:pagehelper:5.1.10'
implementation 'org.springframework.boot:spring-boot-starter'
}
使用api之后,service模塊依賴dao模塊是, api的依賴是可見的,就不用重復依賴了:
service
dependencies {
api (project(':blog-dao'))
implementation 'org.springframework.boot:spring-boot-starter'
}
web模塊
// 引入插件新寫法
plugins {
id 'war'
id 'groovy'
}
//舊寫法
//apply plugin : "war"
archivesBaseName = 'blog-web'
/**
* SourceSets: 指定資源路徑
*/
sourceSets.main.java.srcDirs = []
// 指定groovy編譯路徑,不指定groovy類不會編譯
sourceSets.main.groovy.srcDirs += ["src/main/java"]
/**
* api 用於取代compile(已被廢棄)
* api或compile關鍵字引用的包對於其他module來說是可見的,
* implementation關鍵字引用的包對於其他module來說是不可見的。
*/
dependencies{
implementation (project(':blog-service'))
implementation 'org.springframework.boot:spring-boot-starter-web'
// 打包成war包
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}
使用souceSets混合編譯java和Groovy
必須添加這個才會編譯groovy類
/** * SourceSets: 指定資源路徑 */ sourceSets.main.java.srcDirs = [] // 指定groovy編譯路徑,不指定groovy類不會編譯 sourceSets.main.groovy.srcDirs += ["src/main/java"]
項目結構

添加lombok
dependencies {
// guava 工具包
api 'com.google.guava:guava:27.1-jre'
// gradle5.0版本以上引入需要這種形式
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
implementation 'org.springframework.boot:spring-boot-starter'
}
最后貼上我的Gradle項目: https://gitee.com/houzheng1216/blog_system
轉載於:https://www.cnblogs.com/houzheng/p/11024865.html
