Minimal POM
最小结构的pom文件:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
groupId
项目目录
artifactId
项目Id
version
项目版本
子项目继承父项目
案例:
1、项目结构
|-- my-module
| `-- pom.xml
`-- pom.xml
2、父项目pom
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
3、子项目pom
<project>
<modelVersion>4.0.0</modelVersion>
//通过<parent>标签引入父项目
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
//父项目相对于子项目的相对路径
<relativePath>../</relativePath>
</parent>
//当子项目groupId和version同父项目相同时,
//可省略groupId和version标签
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
4、总结
子项目引入父项目通过parent标签,当子项目groupId和version同父项目相同时可省略。
父项目引入子项目
案例:
1、项目结构
|-- my-module
| `-- pom.xml
`-- pom.xml
2、子项目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
3、父项目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<packaging>pom</packaging>
//父项目通过module标签引入子项目
<modules>
<module>my-module</module>
</modules>
</project>
结论
父项目引入子项目通过module标签引入。
当父子项目之间均需要引用时,父项目使用module标签,子项目使用parent标签引入即可。
pom中定义与使用变量
1、定义变量
案例:
<project>
...
<properties>
<version>1.8</version>
</properties>
...
</project>
2、使用变量
案例:
<project>
...
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${version}</version>
</dependency>
</dependencies>
...
</project>
3、结论
定义变量使用:properties标签+自定义子标签实现
使用变量:${自定义标签名}
父项目定义的变量,子项目可继承使用。
子项目再次定义父项目已存在变量,代表重写变量。