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才能编译经过基础

相关文章
相关标签/搜索