大部分整(fan)理(yi)自Maven官方网站的DOC Introduction to POM https://maven.apache.org/guides/introduction/introduction-to-the-pom.html
POM( Project Obeject Model )是一个Maven工程中最基本的组件单元,
1. 项目变量/POM中的变量;
所有只有单一值的元素都可以作为变量来使用。 ${project.build.sourceDirectory}, ${project.groupId},${project.version},变量的前缀都是project,如果这些变量前缀为pom或者压根没前缀,不要使用它,因为这种形式已经被标注为过时了(@deprecated)
特殊变量(Special Variables)
${project.basedir} 当前工程所在目录
${project.baseUri} 当前工程所在目录,以URI形式展示,Maven 2.1.0之后可用
${maven.build.timestamp} timestamp表示build开始时刻,Maven 2.1.0-M 之后可用
${maven.build.timestamp}时间戳可以被解释为特定的时间日期格式,但是要再项目<project>块中声明`maven.build.timestamp.format`属性。代码如下:
1 <project> 2 ... 3 <properties> 4 <maven.build.timestamp.format>yyyy-MM-dd‘T‘HH:mm:ss‘Z‘</maven.build.timestamp.format> 5 </properties> 6 ... 7 </project>
`maven.build.timestamp.format`的指定格式,与 `java.text.SimpleDateFormat`中的格式一致。如果`maven.build.timestamp.format`没有被指定,那么默认的时间日期格式就是上面所示代码的格式。
也可以将工程中所定义的属性(properties)作为一个变量使用。官网doc给出的示例,就是将 <properties>定义的`mavenVersion`作为变量使用。
1 <project> 2 ... 3 <properties> 4 <mavenVersion>2.1</mavenVersion> 5 </properties> 6 <dependencies> 7 <dependency> 8 <groupId>org.apache.maven</groupId> 9 <artifactId>maven-artifact</artifactId> 10 <version>${mavenVersion}</version> 11 </dependency> 12 <dependency> 13 <groupId>org.apache.maven</groupId> 14 <artifactId>maven-project</artifactId> 15 <version>${mavenVersion}</version> 16 </dependency> 17 </dependencies> 18 ... 19 </project>
2. 项目继承 Project Inheritance的概念,与示例;
3. 项目继承 Project Aggregation的概念,与示例;