path [ pɑ:θ ] 路徑 unexpected [ˌʌnɪkˈspektɪd] 不期望的 class [klɑ:s] 類 usage [ˈju:sɪdʒ] 使用 public ['p ʌblik] 公共的,公用的 version [ˈvɜ:ʃn] 版本 private ['praivit] ...
項目的目錄結構:
一、創建父工程的必須遵循以下兩點:
1、packaging標簽的文本內容必須設置為pom
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.example</groupId> 8 <artifactId>maven-parent</artifactId> 9 <version>1.0.0</version> 10 11 <packaging>pom</packaging> 12 13 </project>
2、把父工程中的src目錄刪除掉
二、創建子工程
1、新建module,勾選模塊maven-parent為父模塊
2、子模塊的pom文件中,parent標簽關聯了父工程。父工程中新增modules標簽,關聯了子模塊
子模塊的pom文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <parent> 6 <artifactId>maven-parent</artifactId> 7 <groupId>com.example</groupId> 8 <version>1.0.0</version> 9 </parent> 10 11 <modelVersion>4.0.0</modelVersion> 12 13 <artifactId>maven-child</artifactId> 14 15 </project>
父工程的pom文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.example</groupId> 8 <artifactId>maven-parent</artifactId> 9 <version>1.0.0</version> 10 11 <modules> 12 <module>maven-child</module> 13 </modules> 14 15 <packaging>pom</packaging> 16 17 </project>
三、父工程管理依賴
由於子工程是無條件繼承父工程的所有依賴,使用<dependencyManagement>標簽統一進行依賴管理,<properties>標簽管理依賴的版本號。子工程使用聲明式方式實現依賴的有需要繼承,防止子模塊中的依賴冗餘。
1 <!--統一管理依賴的版本號--> 2 <properties> 3 <mysql.version>8.0.25</mysql.version> 4 <junit.version>4.13.2</junit.version> 5 </properties> 6 7 <!--統一進行依賴管理--> 8 <dependencyManagement> 9 <dependencies> 10 <dependency> 11 <groupId>mysql</groupId> 12 <artifactId>mysql-connector-java</artifactId> 13 <version>${mysql.version}</version> 14 </dependency> 15 <dependency> 16 <groupId>junit</groupId> 17 <artifactId>junit</artifactId> 18 <version>${junit.version}</version> 19 <scope>test</scope> 20 </dependency> 21 </dependencies> 22 </dependencyManagement>
四、子工程按需要聲明式繼承依賴
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>