項(xiàng)目目錄結(jié)構(gòu)
├── apps
│ ├── api-platform
│ │ ├── src
│ │ └── target
│ └── manage-platform
│ ├── src
│ └── target
├── build
│ └── db
│ ├── alter_v1.0.0
│ └── init
├── common
│ ├── 3rd-libs
│ │ ├── src
│ │ └── target
│ └── util
│ ├── src
│ └── target
├── doc
└── feature
├── app
│ ├── app-api
│ └── app-service
├── flow
│ ├── flow-api
│ └── flow-service
├── openservice
│ ├── openservice-api
│ └── openservice-service
└── security
├── security-api
└── security-service
依賴集中管理
- 在父目錄管理所有依賴的jar包
- 將公共的jar包放入3rd-libs中,并保持盡量最小
- 父目錄管理jar包的版本
- 父pom中將子pom中依賴的爺爺pom中的jar包顯式的標(biāo)記出來
<!--父目錄依賴管理 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<!--springboot的這兩個starter包在父項(xiàng)目spring-boot-starter-parent中進(jìn)行了包管理,此處說明注釋-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter</artifactId>-->
<!--</dependency>-->
<!-- 具體的某個依賴-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<!-- 版本在 properties 中指定-->
<version>${mybatis.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--子pom -->
<dependencies>
<!--無需指定版本,已經(jīng)在父pom中指定 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<!--這個引用其實(shí)已經(jīng)在爺爺pom中指定了 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
嚴(yán)格的依賴控制
- api 中嚴(yán)禁依賴其他jar包
- service 中只準(zhǔn)依賴api
- 明確原則,并明顯的標(biāo)識出來
<!-- api pom 示例-->
<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>
<artifactId>flow-api</artifactId>
<packaging>jar</packaging>
<name>flow-api</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>com.mytijian.openapi</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../../..</relativePath>
<artifactId>open-api</artifactId>
</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>
<!-- 不能依賴任何包和工程 -->
</project>
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。