项目目录
my_test 聚合pom
<?xml version="1.0" encoding="UTF-8"?> <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>com.mylove</groupId> <name>my_test</name><!--提供一个更容易阅读的名称,没什么其他太大作用。--> <artifactId>my_test</artifactId> <packaging>pom</packaging><!--packaging的类型必须为pom,否则无法构建。--> <version>1.0-SNAPSHOT</version> <!--这是实现聚合的标签,其下可包含多个module元素。--> <modules> <module>parent</module><!--父模块放前面--> <module>son</module> </modules> <!--聚合模块下的内容只需要POM文件,它不像其他模块那样有src/main/java、src/test/java等目录。 他只是用来帮助聚合其他模块构建,他本身并不会有过多的实质内容。 关于目录结构要注意的是,聚合模块既可以作为其他模块的父目录,也可以与其他模块处于平行的目录 如果使用平行目录,聚合模块的POM要做相应的修改,以指向正确的模块目录: <module>../parent</module> <module>../log/pom-pack.xml</module>--> </project>
新建module
parent 父pom 新建之后要修改
<?xml version="1.0" encoding="UTF-8"?> <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"> <groupId>com.mylove</groupId> <version>1.0-SNAPSHOT</version> <modelVersion>4.0.0</modelVersion> <artifactId>parent</artifactId> <packaging>pom</packaging> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.1.0</version> <scope>compile</scope> </dependency> </dependencies> </project>
子pom
<?xml version="1.0" encoding="UTF-8"?> <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"> <parent> <artifactId>parent</artifactId> <groupId>com.mylove</groupId> <version>1.0-SNAPSHOT</version> <relativePath>../parent</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>son</artifactId> </project>
可继承的POM元素
groupId
和version
是可以被继承的,那么还有哪些POM元素可以被继承呢?以下是一个完整的列表,并附带了简单的说明:
- groupId :项目组 ID ,项目坐标的核心元素;
- version :项目版本,项目坐标的核心元素;
- description :项目的描述信息;
- organization :项目的组织信息;
- inceptionYear :项目的创始年份;
- url :项目的 url 地址;
- develoers :项目的开发者信息;
- contributors :项目的贡献者信息;
- distributionManagerment :项目的部署信息;
- issueManagement :缺陷跟踪系统信息;
- ciManagement :项目的持续继承信息;
- scm :项目的版本控制信息;
- mailingListserv :项目的邮件列表信息;
- properties :自定义的 Maven 属性;
- dependencies :项目的依赖配置;
- dependencyManagement :醒目的依赖管理配置;
- repositories :项目的仓库配置;
- build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
- reporting :包括项目的报告输出目录配置、报告插件配置等。
有关版本的简单说明
对于用过svn或者cvs的朋友们,都会知道,每次修改都会提交一个版本到服务器上,对于我们平常所搭建的项目,大家可能没有注意到版本这个概念。其实版本对于叠加式开发的项目是个很重要的概念,通过上面的依赖,我们就可以清楚地看到一个version,这个就是引入依赖包的版本。
那么版本一共可以分为几个层次,一般来说,版本可以分为:总版本号.分支版本号.小版本号-里程碑版本。
- 总版本号:一般表示框架的变动。
- 分支版本号:一般表示增加了一些功能。
- 小版本号:在分支版本上面进行bug的修复。
- 里程碑:SNAPSHOT–>alpha–>beta–>release–>GA
<!--父模块放前面-->