0. 前言
該專案使用Maven進行管理和構建,所以需要預先配置好Maven。嗯,在這個系列裡就不做過多的介紹了。
1. 建立專案
先建立一個pom.xml 檔案,新增以下內容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>club.attachie</groupId>
<artifactId>nature</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<properties>
<revision>1.0-SNAPSHOT</revision>
</properties>
</project>
POM 全稱 project object model,也就是專案物件模型,它是maven專案的標註檔案,採用XML格式,名稱就是pom.xml。這個檔案用於管理原始碼、配置檔案、開發者的資訊和角色、問題追蹤系統、組織資訊、專案授權、專案地址和依賴關係。
pom檔案對於maven專案重要到,一個maven專案可以沒有其他的任何檔案和內容,但絕對不能沒有pom.xml檔案。
1.1 專案資訊
pom檔案中包含了專案的基本資訊:
- groupId 組織名稱
- artifactId 專案名稱
- version 版本號
1.2 使用佔位符
在pom中我們會使用很多專案的版本號,有時候還會使用一些其他的常量。如果常量分佈的比較零散,這樣就不利於我們的維護和管理。這時候就要引入佔位符或者叫屬性。我們將需要的常量宣告在properties節點內:
<properties>
<revision>1.0-SNAPSHOT</revision>
</properties>
這種形式類似於 宣告瞭一個變數
revision=1.0-SNAPSHOT
在需要這個變數的時候,通過${revision}
使用即可。
2. 專案結構分層
在一個工業級的專案裡,我們需要對專案進行一個合理的分層。這樣有利於開發和後期維護。
那麼,先在根目錄下新增這三個目錄:
- common 用來存放一些公共包
- activities 業務模組所在的父包
- manager 用來存放一些Spring Cloud的一些管理工具,例如Spring boot admin、Spring Cloud Gateway等
分別在三個目錄下新增 pom.xml檔案,新增:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>club.attachie</groupId>
<artifactId>各自的專案名稱,建議是目錄名</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<parent>
<groupId>club.attachie</groupId>
<artifactId>nature</artifactId>
<version>${revision}</version>
</parent>
</project>
並修改各自的artifactId。
然後註冊到根目錄的pom.xml,標記這三個專案為子專案。
<modules>
<module>common</module>
<module>activities</module>
<module>manager</module>
</modules>
然後執行:
mvn clean install
檢查一下配置是否有誤。
3. 引入公共依賴
Spring boot和Spring Cloud建立了對應的依賴包,可以讓我們在開發過程中不用過多的擔心一些常見專案與Spring boot和Spring Cloud的版本衝突問題。
先在根目錄下的pom.xml檔案中宣告引入的 Spring boot版本號和Spring Cloud版本號:
<spring-boot.version>2.2.5.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
建立依賴管理節點,並新增 Spring boot 和Spring Cloud依賴包:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在子包中需要用到的三方包,理應都由根目錄下的pom.xml進行管理,而管理的包都會放在dependencyManagement >> dependencies 節點下。
在專案中使用依賴,在pom.xml檔案的project節點下新增如下節點,如果已有可以忽略,注意不是dependencyManagement下的。
<dependencies>
</dependencies>
試著新增lombok包(這個包是一個Java中很著名的包,可以省略Java中的get/set等方法的建立)。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
之所以沒有宣告版本號,是因為這個包已經由 spring-boot-dependencies 進行管理了。所以我們直接在這裡引入即可。
4. 總結
現在,我們搭建起了一個專案架子,裡面空蕩蕩的什麼都沒有,但這樣就形成了一個骨架,後期將為這個骨架豐富血肉,讓它的功能更加強大。
更多內容煩請關注我的部落格《高先生小屋》