maven项目继承
项目继承:项目继承是指在pom.xml中设置parent,如下:
这样项目就会从父pom中继承相关的配置,主要有以下配置:
properties:自定义属性,后面会讲到
dependencies:依赖,在父pom中配置的依赖会被子模块继承。
developers and contributors:开发人员信息
plugin lists:plugin 列表,包括各个plugin 的配置,如常见的compiler plugin
reports lists:报表的配置,这个是自动生成站点相关的
继承和依赖的区别
继承是会从上一级pom获取配置的,而依赖紧紧是处理CLASSPATH 的问题,不会说app1 依赖某个artifact,然后会从该artifact的pom获取plugin配置等,这个是不可能的。
在实际的项目中,我们会有一个项目基本的pom,该pom继承自公司级别的的pom,然后项目的子模块会继承项目级别的pom。
对于一个软件公司来说,典型Maven POM继承结构如下:
公司会有一个统一的POM,设定和公司特定的配置,如仓库地址,全局plugin等。
对于淘宝来说,就是目前的com.taobao.parent。接下来就是项目的pom,项目的pom必需要继承公司的POM。最后是项目下的各个模块,需要继承项目的POM。