如何在springboot中使用gradle構(gòu)建一個多模塊項目?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1.創(chuàng)建項目
首先安裝java和gradle,本文選用的java版本為1.8.0_40,gradle版本為2.10,安裝過程本文不再贅述。
其次創(chuàng)建項目,名稱為 springboot-mm:
mkdir springboot-mm cd springboot-mm gradle init

此時的項目結(jié)構(gòu)如下:

接下來,創(chuàng)建多個模塊,這里以web和modules為例,先創(chuàng)建相關(guān)的目錄,
Linux:
mkdir -p web/src/main/{java,resources} web/src/test/{java,resource}
mkdir -p modules/src/main/{java,resources} modules/src/test/{java,resource}Windows:
mkdir web\src\main\java,web\src\main\resource,web\src\test\java,web\src\test\resource mkdir modules\src\main\java,modules\src\main\resource,modules\src\test\java,modules\src\test\resource
此時的目錄結(jié)構(gòu)如下:

2.修改配置
首先修改根目錄下的 settings.gradle 文件,引入子模塊:
include 'web','modules'
其次修改根目錄下的 build.gradle:
// 所有子項目的通用配置
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
version = '1.0.0'
// JVM 版本號要求
sourceCompatibility = 1.8
targetCompatibility = 1.8
// java編譯的時候缺省狀態(tài)下會因為中文字符而失敗
[compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
mavenCentral()
jcenter()
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
maven { url 'http://maven.springframework.org/release' }
maven { url 'http://maven.springframework.org/milestone' }
}
jar {
manifest {
attributes("Implementation-Title": "Gradle")
}
}
// 顯示當前項目下所有用于 compile 的 jar.
task listJars(description: 'Display all compile jars.') << {
configurations.compile.each { File file -> println file.name }
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}接下來,使用intellij (使用版本為2016.3)導(dǎo)入項目,導(dǎo)入成功后,應(yīng)該可見如下顯示:

添加 web/build.gradle 文件并修改,來定義 web模塊的依賴:
buildscript {
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
maven { url "http://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" }
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.5.RELEASE")
}
}
apply plugin: 'org.springframework.boot'
archivesBaseName = 'web'
ext {
springBootVar = '1.4.5.RELEASE'
}
dependencies {
compile project(':modules')
// spring boot
compile "org.springframework.boot:spring-boot-starter-web:$springBootVar"
testCompile "org.springframework.boot:spring-boot-starter-test:$springBootVar"
}添加 modules/build.gradle 文件,本例中modules是web的依賴模塊,通常可以將類似orm,支付,認證等功能分別放到不同的modules中,這樣可以降低程序的耦合性,便于業(yè)務(wù)的擴展。讀者可根據(jù)自身項目要求,對modules/build.gradle進行修改,但需要在modules/build.gradle,加入以下配置:
bootRepackage {
enabled = false
}具體原因,請參考,此處。
3.添加測試代碼
添加web\src\main\java\com\formularoom\Application.java,示例代碼如下
@ComponentScan( basePackages = {"com.formularoom"})
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {
public static void main(String args[]) {
SpringApplication.run(Application.class, args);
}
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8081);
}
}添加web\src\main\java\com\formularoom\controller\test1.java,
@Controller
public class test1 {
@RequestMapping(value = "/test1", method = RequestMethod.GET)
@ResponseBody
public String test1() {
return "spring boot multiple modules test";
}
}使用瀏覽器訪問http://127.0.0.1:8081/test1 , 顯示如下:

看完上述內(nèi)容,你們掌握如何在springboot中使用gradle構(gòu)建一個多模塊項目的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享名稱:如何在springboot中使用gradle構(gòu)建一個多模塊項目-創(chuàng)新互聯(lián)
標題來源:http://chinadenli.net/article6/eocog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務(wù)器、微信小程序、企業(yè)網(wǎng)站制作、企業(yè)建站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容