zoukankan      html  css  js  c++  java
  • Maven Pom的一些知识

    大部分整(fan)理(yi)自Maven官方网站的DOC Introduction to POM https://maven.apache.org/guides/introduction/introduction-to-the-pom.html

    POM( Project Obeject Model )是一个Maven工程中最基本的组件单元,

    Minimal POM

    POM中可以包含很多标签,其中有一些标签是必须的,只包含这些标签的POM被称为 minimal POM,必须包含的部分包括:

      (1). <project> 根,类似于所有的HTML页面,都包含有<HTML></HTML>

      (2). <modelVersion>,应该被设置为 4.0.4

      (3). <groupId>,项目组的ID

      (4). <artifactId>,articfact(项目)的ID

      (5). <version>, 位于特定组下的项目版本号

    以下为一个minimal POM的示例

    1 <project>
    2   <modelVersion>4.0.0</modelVersion>
    3   <groupId>com.mycompany.app</groupId>
    4   <artifactId>my-app</artifactId>
    5   <version>1</version>
    6 </project>

    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的概念,与示例;

    4. POM中的依赖项

      对于一个工程对象模型(Project Object Model),依赖项列表是它的基石——毕竟工程是需要依赖其它不同的工程提供的class或者jar完成编译和运行的。

  • 相关阅读:
    Python inspect
    常见漏洞解析
    Linux安装常见问题
    Linux下查看系统信息
    (转)微信网页扫码登录的实现
    设计模式--六大原则
    Git 操作常用命令
    Scrapy工作原理
    PHP多维数组转一维
    归并排序(Python实现)
  • 原文地址:https://www.cnblogs.com/nomorewzx/p/4690108.html
Copyright © 2011-2022 走看看