1)父子-聚合項目
通過 maven 可以創建父子-聚合項目。 所謂的父子項目,即有一個父項目,有多個子項目。
這些子項目,在業務邏輯上,都歸納在這個父項目下,並且一般來說,都會有重復的jar包共享。
所以常用的做法會把重復的 jar 包都放在父項目下進行依賴,那么子項目就無需再去依賴這些重復的 jar 包了。
2)創建父項目
菜單->File->New->Other->maven-Maven Project->Next
3)選擇簡單項目
選擇 Create a simple project. 這一步不是必須,只是簡單一點。
然后點擊Next
4)輸入參數
輸入參數,主要是項目名稱: parentMavenProject, 然后點擊 finish
5)parentMavenProject 的 pom.xml
修改pom,主要兩點:
1. 默認是 jar, 修改為pom。 這樣才可以作為父項目存在。
<packaging>pom</packaging>
2. 增加 hutool jar 包的依賴,用於后來子項目里觀察對其的調用。
<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>top.xk</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> <name>parentMavenProject</name> <description>parentMavenProject</description> <packaging>pom</packaging> <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </dependency> </dependencies> </project>
這時你的項目會報紅:
6)update maven
修改 pom.xml 之后, 右鍵點擊項目 -> Maven -> Update Project -> OK 進行更新。 否則項目紅點一直在~
7)創建子項目
接下來創建maven 子項目。 maven 子項目有叫做模塊 module.
為了能夠在 parentMavenProject 的基礎上創建其子項目,首先右鍵點擊 parentMavenProject, 然后點擊 New -> Other -> Maven -Maven Module -> Next
8)簡單項目
和父項目一樣,這里也勾選 Craete a simple project ( 非必須 ),然后點 Next
9)項目參數
接着點 Finish
10)TestHutool
運行,現在看到運行效果。
就表示子項目雖然沒有依賴jar包,但是通過 父項目達到了依賴的效果。
package childMavenProject; import java.util.Date; import cn.hutool.core.date.DateUtil; public class TestHutool { public static void main(String[] args) { String dateStr = "2001-01-01 01:01:01"; Date date = DateUtil.parse(dateStr); System.out.println(date); } }
11)子項目的pom.xml
這里僅僅是展示出來,可以看到其中有如下parent,就表示是引用父項目 parentMavenProject。
<parent> <groupId>top.xk</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
<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> <parent> <groupId>top.xk</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>childMavenProject</artifactId> <name>childMavenProject</name> <description>childMavenProject</description> </project>
12)父項目的pom.xml
再次打開父項目的pom.xml, 會發現其多了一個:
<modules> <module>childMavenProject</module> </modules>
表示其子模塊是 childMavenProject
<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>top.xk</groupId> <artifactId>parentMavenProject</artifactId> <version>0.0.1-SNAPSHOT</version> <name>parentMavenProject</name> <description>parentMavenProject</description> <packaging>pom</packaging> <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </dependency> </dependencies> <modules> <module>childMavenProject</module> </modules> </project>
13)目錄結構
觀察目錄結構,可以發現 childMavenProject 是位於 parentMavenProject下面的。 所以如果將來有 childMavenProject1, childMavenProject2, childMavenProject3 也會放在這么一個目錄下,就方便管理了。
14)可運行項目