Maven 元素

原文地址:http://www.cnblogs.com/ygj0930/p/6628201.html 

    一个pom.xml中包含了许多标签,各个标签是对项目生命周期、依赖管理的配置。常用的主要有:

    1:<peoject>:pom.xml的根标签,一个maven项目用一对<peoject></project>标签包裹。

    2:<modelVersion>:maven的版本

    3:当前项目的坐标以及打包方式:

        <groupId>:企业网址反写+项目名

        <artifactId>:项目名-模块名

        <version>:版本号+类型

                        版本号由三个整数表示,每个整数用“.”分隔,表示:大版本号.分支版本号.小版本号

                        类型:版本类型。主要有:snapshot快照版本(简化版本)、alpha内测版、beta公测版、release稳定版、GA正式发布版

        <packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。

    4:<name>:当前项目名

    5:<url>:项目地址

    6:<description>:项目描述信息

    7:<developers>:开发者信息

    8:<licenses>:项目许可证信息,用来发布时授予别人使用此项目的权利

    9:<organization>:组织信息,企业信息

    以上都是对这个maven项目的相关信息配置。

    10:<properties>:属性值标签,也叫变量标签。与Ant中的property一样,可以通过这个标签包含一些属性并指定属性值。那么在pom.xml的其他地方,可以通过EL表达式访问变量的方法——${属性名}  来获取具体的属性值。一般这个用来作为整个pom.xml中需要重复使用的内容或者全局变量使用。

    11:依赖标签

复制代码
<dependencies>

<!–一个依赖包–>
<dependency>

<!–通过坐标指定依赖包–>
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version>

<!–可选项:依赖范围。有六个可选值:常用compile/provided/test/runtime等-->
<scope>一个范围</scope>
<!–可选项:排除依赖传递:即:当前项目依赖当前配置的依赖包A时,如果这个依赖包又依赖其他包B,这里可以选择排除依赖的传递性,不下载导入B–>
<exclusions>
<exclusion>

              <!--被排除的依赖包坐标-->
              <groupId> </groupId>
              <artifactId> </artifactId>
              <version> </version>
            </exclusion>
         </exclusions>
    </dependency>
</dependencies>
复制代码

 

    12:依赖管理标签:主要用于制定父pom.xml,其他项目可以继承这个pom.xml,从而避免重复定义某些depency。

复制代码
<depencyManagement>
    <depencies>
       <depency>
           依赖包的坐标...
       </depency>
    </depencies>
</depencyManagement>
复制代码

    13:<build>:项目支持标签,一般用来引入插件

复制代码
<build>
    <plugins>
      <plugin>
         <!--插件坐标-->
         <groupId>         </groupId>
         <artifactId>         </artifactId>
         <version>         </version>
         其他设置...

</plugin>
</plugins>
</build>

复制代码

    14:<parent>:继承标签,用于继承父项目。

    15:<moudules>:聚合标签,用于聚合多个maven项目,这样用某指令执行这个pom就会把聚合的各项目全部执行,同时处理多个项目。

 

示例代码如下:

<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">
  <!--指定了当前pom的版本-->
  <modelVersion>4.0.0</modelVersion>

  <!--坐标信息  start-->
  <groupId>反写的公司网址+项目名</groupId> <!--主项目标识-->
  <artifactId>项目名+模块名</artifactId>
  <!--第一个0表示大版本号
    第二个0表示分支版本号
    第三个0标识小版本号
    0.0.1SNAPSHOT
    snapshot快照
    alpha内测
    beta公测
    Release稳定
    GA正式发布
    -->
  <version></version>
  <!--打包方式:默认是jar
    war  zip  pom
  -->
  <packaging></packaging>
  <!--坐标信息  end-->

  <!--项目描述名-->
  <name>hi</name>
  <!--项目地址-->
  <url>http://maven.apache.org</url>
  <!--项目描述-->
  <description></description>
  <!--开发人员列表-->
  <developers></developers>
  <!--许可证信息-->
  <license></license>
  <!--组织信息-->
  <organization></organization>
  
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <!--依赖列表-->
  <dependencies>
    <!--依赖项-->
    <dependency>
      <!--项目坐标 start-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <type></type>
      <scope>test</scope><!--指依赖范围-->
      <!--设置依赖范围是否可选:默认false-->
      <optional></optional>
      <!--排除依赖传递列表-->
      <executions>
        <execution></execution>
      </executions>
      <!--项目坐标 end-->
    </dependency>
  </dependencies>
  
  <!--依赖的管理-->
  <!--不会运行,即不会调用到依赖中
    一般定义在父模块中,供子模块调用
  -->
  <dependencyManagement>
    <dependencies>
        <dependency></dependency>
    </dependencies>
  </dependencyManagement>
  <!--提供支持-->
  <build>
        <!--插件列表-->
          <plugins>
              <plugin>
                <!--坐标-->
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-source-plugin</artifactId>
                  <version>2.4</version>
                  <executions>
                      <execution>
                          <phase>package</phase>
                          <goals>
                              <goal>jar-no-fork</goal>
                          </goals>
                      </execution>
                  </executions>
              </plugin>
          </plugins>
  </build>
  <!--子模块对父模块的继承-->
  <parent></parent>
  <!--聚合多个模块进行编译,可多个子项-->
  <modules>
    <module></module>
  </modules>
   
</project>

参考:https://www.cnblogs.com/youzhibing/p/5427130.html#_label4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值