Maven pom.xml配置文件解析

简介:

使用IDEA新创建Maven Java项目后,项目根目录下有一个pom.xml文件,pom文件包含了项目的基本信息,用来设置项目的项目依赖、插件、项目版本等信息。
执行任务或目标时,Maven 会在当前目录中查找并读取 POM,获取所需的配置信息,然后执行目标。
POM文件中可以指定以下配置信息:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

pom文件中的默认配置

每个pom文件必需的元素有根元素:project 元素和三个必需字段:工程组的标识groupId,工程的名称artifactId,版本信息version,如下:

<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><!--maven2.0必须是这样写,现在是maven2唯一支持的版本-->	
	 <groupId>org.example</groupId  -->项目唯一标识
	 <artifactId>datasec-glory-jdbc-driver</artifactId  -->项目名称
	 <version>1.0-SNAPSHOT</version-->项目版本	
	</project>

pom文件中的依赖dependencies

Dependencies字段用来声明项目依赖的其他项目和组件,有三要素唯一标识其他项目和组件。需要是maven中心包管理的项目或组件,否则需要自己部署,或者通过设置scope为system并指定路径,将依赖项目包含进来。
有时候各个项目多层依赖,如A依赖B,B依赖C,如果在A中依赖B,默认A依赖C,如果A不想依赖C,可以用exclusions将C排除。

<!--该元素描述了项目相关的所有依赖。 这些依赖自动从项目定义的仓库中下载 -->
<dependencies>
	<dependency>
    <!------------------- 依赖坐标 ----------------->
    <!--依赖项目的坐标三元素:groupId + artifactId + version -->
    <groupId>com.jdcloud.security</groupId>
    <artifactId>datasec-glory-jdbc-driver</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    </dependency>

    <dependency>
    <groupId>com.jdcloud.security</groupId>
    <artifactId>datasec-glory-jdbc-test</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    </dependency>
</dependencies>

远程仓库列表

远程仓库列表的配置,包括依赖和扩展的远程仓库配置,以及插件的远程仓库配置。在本地仓库找不到的情况下,maven下载依赖、扩展和插件就是从这里配置的远程仓库中进行下载。

需要注意的是release和snapshot两者的区别。release是稳定版本,一经发布不再修改,想发布修改后的项目,只能升级项目版本再进行发布;snapshot是不稳定的,一个snapshot的版本可以不断改变。项目在开发期间一般会使用snapshot,更方便进行频繁的代码更新;一旦发布到外部,或者开发基本完成,代码迭代不再频繁,则推荐使用release。

<!--发现依赖和扩展的远程仓库列表。 -->
<repositories>
   	<repository>
	<!--包含需要连接到远程仓库的信息 -->
           <snapshots> <!-- 有了releases和snapshots这两组配置,就可以在每个单独的仓库中,为每种类型的构件采取不同的策略 -->
             <enabled>false</enabled>  <!--值为true或者false,表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->
           </snapshots>
           <id>central</id> <!--远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 -->
           <name>libs-releases</nam <!--远程仓库名称 -->
           <url>http://artifactory.jd.com/libs-releases</url>  <!--远程仓库URL,按protocol://hostname/path形式 -->
       </repository>
       <repository>
           <snapshots/>
           <id>snapshots</id>
           <name>libs-snapshots</name>
           <url>http://artifactory.jd.com/libs-snapshots</url>
       </repository>
   </repositories>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值