maven pom进阶教程 - parent与module

一个大的项目,随着功能的日趋增多,会逐渐的将部分功能剥离出来,变成一个较为独立的模块,或者是将某些公共的代码变成基础库。parent与module就是用来解决这样的问题的(parent与module不需要配对使用)。比如下面的工程结构:

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

parent是根目录, 它包含4个模块, child1生成可执行jar, child2生成一个war包, share1生成jar库, share2是依赖于share1的jar库. 它们的依赖关系如下

                           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格式

<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格式

<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过程如下

cd parent/share1
mvn install

上面两步都执行成功之后, child1才能编译通过

转载于:https://my.oschina.net/u/2343729/blog/830903

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值