本篇文章主要介紹了springboot+maven 多模塊項目的構建、運行、打包,分享給大家,具體如下:
項目使用的工具:
- intellij idea
- jdk 1.8
- apache-maven-3.3.9
項目的目錄:
- 主項目 springboot-multi
- 子模塊 entity、dao、service、web
一、使用idea創建一個springboot項目 : file -> new -> project 項目名稱為springboot-multi
二、刪除項目中的src目錄,把pom.xml中的項目打包方式改為pom,如下:
1
2
3
4
5
|
<groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <!-- 此處改為pom --> <packaging>pom</packaging> |
三、創建springboot-multi項目的子模塊,在項目上右鍵單擊,選擇:new -> module。
四、創建四個子模塊后,刪除子模塊中 src/main/java、src/main/java下的所有文件(如果沒有文件跳過此操作),只保留web子模塊的springboot的application主啟動類。
五、主項目pom.xml (注意<modules>標簽是否指定了子模塊)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<modelversion> 4.0 . 0 </modelversion> <groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <!-- 此處改為pom --> <packaging>pom</packaging> <name>springboot-multi</name> <description>demo project for spring boot</description> <modules> <module>web</module> <module>service</module> <module>dao</module> <module>entity</module> </modules> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version> 1.5 . 10 .release</version> <relativepath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceencoding>utf- 8 </project.build.sourceencoding> <project.reporting.outputencoding>utf- 8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> </dependencies> <!--指定使用maven打包--> <build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version> 3.1 </version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> <version> 2.19 . 1 </version> <configuration> <skiptests> true </skiptests> <!--默認關掉單元測試 --> </configuration> </plugin> </plugins> </build> |
六、web子模塊pom.xml(依賴service、dao、entity子模塊)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
<modelversion> 4.0 . 0 </modelversion> <groupid>com.example</groupid> <artifactid>web</artifactid> <version> 0.0 . 1 -snapshot</version> <packaging>jar</packaging> <name>web</name> <description>demo project for spring boot</description> <parent> <groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <relativepath>../pom.xml</relativepath> </parent> <dependencies> <dependency> <groupid>com.example</groupid> <artifactid>service</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> <dependency> <groupid>com.example</groupid> <artifactid>dao</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> <dependency> <groupid>com.example</groupid> <artifactid>entity</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> </dependencies> <!--spring boot打包的話需要指定一個唯一的入門--> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <configuration> <!-- 指定該main class 為全局的唯一入口 --> <mainclass>com.example.webapplication</mainclass> <layout>zip</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!--可以把依賴的包都打包到生成的jar包中--> </goals> </execution> </executions> </plugin> </plugins> </build> |
七、service子模塊pom.xml(依賴 dao 、entity子模塊)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<modelversion> 4.0 . 0 </modelversion> <groupid>com.example</groupid> <artifactid>service</artifactid> <version> 0.0 . 1 -snapshot</version> <packaging>jar</packaging> <name>service</name> <description>demo project for spring boot</description> <parent> <groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <relativepath>../pom.xml</relativepath> </parent> <dependencies> <dependency> <groupid>com.example</groupid> <artifactid>dao</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> <dependency> <groupid>com.example</groupid> <artifactid>entity</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> </dependencies> |
八、dao子模塊pom.xml (依賴entity子模塊)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<modelversion> 4.0 . 0 </modelversion> <groupid>com.example</groupid> <artifactid>dao</artifactid> <version> 0.0 . 1 -snapshot</version> <packaging>jar</packaging> <name>dao</name> <description>demo project for spring boot</description> <parent> <groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <relativepath>../pom.xml</relativepath> </parent> <dependencies> <dependency> <groupid>com.example</groupid> <artifactid>entity</artifactid> <version> 0.0 . 1 -snapshot</version> </dependency> </dependencies> |
九、entity子模塊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<modelversion> 4.0 . 0 </modelversion> <groupid>com.example</groupid> <artifactid>entity</artifactid> <version> 0.0 . 1 -snapshot</version> <packaging>jar</packaging> <name>entity</name> <description>demo project for spring boot</description> <parent> <groupid>com.example</groupid> <artifactid>springboot-multi</artifactid> <version> 0.0 . 1 -snapshot</version> <relativepath>../pom.xml</relativepath> </parent> |
十、pom.xml文件中需要注意的就是:
- 主項目的modules標簽指定的子模塊是否正確
- 子模塊之間的依賴
- 子模塊的parent標簽
十一、web子模塊的application啟動類:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@restcontroller @springbootapplication public class webapplication { public static void main(string[] args) { springapplication.run(webapplication. class , args); } @requestmapping (value = "/test" ,method = requestmethod.get) public string test(){ return "test success" ; } } |
十二、執行main方法啟動項目,訪問localhost:8080/test,出現如下頁面表示項目搭建成功:
十三、項目打包命令: mvn clean package 或者 使用右邊工具欄的圖形化界面打包也可以:
十四、打包成功日志:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/zeketao/article/details/79413919