maven pom進階教程 - parent與module

一個大的項目,隨着功能的日趨增多,會逐漸的將部分功能剝離出來,變成一個較爲獨立的模塊,或者是將某些公共的代碼變成基礎庫。parent與module就是用來解決這樣的問題的(parent與module不須要配對使用)。好比下面的工程結構:maven

─parent
├─child1
├─child2
├─share1
├─share2
├─pom.xmlcode

parent是根目錄, 它包含4個模塊, child1生成可執行jar, child2生成一個war包, share1生成jar庫, share2是依賴於share1的jar庫. 它們的依賴關係以下xml

child1 (jar)         child2 (war)
                               |                   /
                               |           share2(jar)
                               |        /
                            share1(jar)

parent/pom.xml基本格式遞歸

<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>test</groupId>
	<artifactId>parent</artifactId>
	<version>1.0.0</version>
	<name>parent</name>
	<packaging>pom</packaging>
	<modules>
		<module>child1</module>
		<module>child2</module>
		<module>share1</module>
		<module>share2</module>
	</modules>
</project>

parent/share1/pom.xm格式ci

<project>
	<parent>
		<groupId>test</groupId>
		<artifactId>parent</artifactId>
		<version>1.0.0</version>
		<relativePath>../pom.xml</relativePath> <!-- 這是句廢代碼,maven會自動搜索上一級目錄,若是被安裝到了倉庫中,則這裏的相對路徑是倉庫裏的目錄-->
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>share1</artifactId>
	<version>1.0.0</version>
	<name>share1</name>
	<packaging>jar</packaging>
</project>

parent/child1/pom.xml格式io

<project>
	<parent>
		<groupId>test</groupId>
		<artifactId>parent</artifactId>
		<version>1.0.0</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>my-child1</artifactId>
	<version>1.0.0</version>
	<name>child1</name>
	<dependencies>
		<dependency>
			<groupId>test</groupId>
			<artifactId>share1</artifactId>
			<version>1.0.0</version>
		</dependency>
	</dependencies>
</project>

share2, child2的格式也是相似的 本例中,模塊之間也產生了依賴關係,須要被依賴的module和parent/pom.xml安裝到本地倉庫中, 不然編譯child1時,會找不到shar1,或是找不到parent 安裝parent/pom.xml過程以下編譯

cd parent
mvn install -N

-N是指不遞歸操做,不然會把全部的child都安裝一遍,若是你不介意,也無所謂,可是會多花時間,尤爲是很大的工程。   安裝share1過程以下test

cd parent/share1
mvn install

上面兩步都執行成功以後, child1才能編譯經過基礎

相關文章
相關標籤/搜索