博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven POM入门
阅读量:6281 次
发布时间:2019-06-22

本文共 1990 字,大约阅读时间需要 6 分钟。

Super POM(project object model)

Maven内置了一个默认的POM(不在项目中,因此不可见),每一个project都会继承自这个默认的POM,因此叫Super POM。除非在项目的配置(POM)中显式的修改,否则使用默认的配置。不同的Maven版本,默认的POM也不一样,遇到问题则需要自己检查。

最小的POM

一个project就是一个artifact,project的全称为: <groupId>:<artifactId>:<version>。

在Maven1中是project.xml,Maven2改成了pom.xml。在Maven1中还有一个maven.xml用于包含可以执行的目标,在Maven2已经配置到了pom.xml中。

 

4.0.0
com.ebay.raptor.samples
SamplesParent
1.1.0-SNAPSHOT

artifact可以是任何东西,包括JAR, WAR,POM, EBA文件等。group只是artifact的命名空间,有点类似于java的包。如果项目还处在开发阶段,在版本后会有一个"SNAPSHOT",Maven只允许snapshot artifact被更新,release版本是不能更新的。

 

modelVersion很重要,因为不同的model,POM的格式是不一样的。

以上几个节点构成了一个最小的POM,这些是POM必须拥有的信息。

继承

如果我们需要把一个artifact放到另一个artifact中,就需要设置继承关系,这个继承关系是由子的module来维护的,因此会在module的pom中有一个parent节点。

 

com.mycompany.app
my-app
1
4.0.0
com.mycompany.app
my-module
1

 

刚才上面讲的是目录结构是如下的时候:

|-- my-module
|   `-- pom.xml
`-- pom.xml

如果目录结构是下面的样子,

|-- my-module
|   `-- pom.xml
`-- parent
     `-- pom.xml
则需要在parent中添加relativePath节点:

 

com.mycompany.app
my-app
1
../parent/pom.xml
4.0.0
my-module

 

集成(aggregation)

和继承有点类似,但是父子关系是由父的POM来维护的。方法是在POM中添加modules节点:

 

4.0.0
com.mycompany.app
my-app
1
pom
my-module

 

节点module其实是目录名称,因此如果module不在app中,而是与app平级,则可以写成这样:

 

../my-module

 

项目插值与变量

整个POM相当于一个对象,子节点就是一个个属性,因此可以直接访问:

 

${project.version}

 

另外,还有几个特殊的变量:

project.basedir

当前项目所在的目录

project.baseUri

当前项目所在的目录,只不过用 URI的格式表示. 从Maven 2.1.0开始

maven.build.timestamp

Build的开始时间.从Maven 2.1.0-M1开始

在project也可以自定义自己的变量,方法是在properties中添加属性:

 
2.1

转载地址:http://lkxva.baihongyu.com/

你可能感兴趣的文章
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>