Maven学习之pom.xml详解(一)

2018.6.14

setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件(决定了从哪里下载jar包,我的这个文件是重新下过的,不是用的默认的,里面有这样的一段:350ed736cb77c831715342415cf31cd8e39.jpg

这就决定了我的jar包是从阿里云下载的,这样下载的速度会快一点,而下载在哪里则由这个决定54d1206ee8dc98ad747acd178715f61838b.jpg);

pom.xml文件是由maven项目产生的

而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。

(当然maven项目是可以相互依赖的,你可以创建一个父类的maven项目,里面就配置一个pom文件,用来配置jar包,那么你其他的项目里面的依赖都可以引用这个父pom里面的配置,那么以后要跟新版本的时候,直接在父pom修改版本就ok了,其他的都会跟新。但是如果你在子pom中指定了版本号,那么它就会用你指定的版本,不会去引用父的那个版本了)

 

以下是pom文件里面的详细解释

cff4185ff96fe4d8121b396d31cfd92e707.jpg

 

ee23aabe13bdb46cbb5595f9dfb930052ae.jpg

<properties></properties>,这个是定义一些常量,你可以在声明jar包版本时直接引用。引用格式如下:

5e9bb68a0c64f97fbb8a0327656266707e3.jpg

还有一个不太常用的属性classifier,目前我还没有用到,不是很懂,之后再理解补充吧。用法大概是这样的

bf1a7b59c7304dc563b75caae37480e4f0f.jpg

那么如何来引用jar包呢,格式是这样的。

319a29b31dcb03052c16b60622de4ea2fb9.jpg

每一个jar包的引用最基本的都是这三个属性(一般情况下,maven是通过groupId、artifactId、version这三个元素值(俗称坐标)来检索该构件, 然后引入你的工程),groupId,artfactId,version。当然还有其他的属性,这个后面再讲。先讲一个scope

scope也是放在dependency中的一个属性,maven认为,程序对外部的依赖会随着程序的所处阶段和应用场景而变化,所以maven中的依赖关系有作用域(scope)的限制,scope包含如下的取值:compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围)

 

构建配置

大框跟引用依赖<dependencies></dependencies>一样,用的是<build></build>,然后再在这里面写配置。

3b335c3255bab28fc54c9e5a60f3778e407.jpg产生的构件的文件名,默认值是${artifactId}-${version}

e62cd32a53f38ef1c18ee83f245c4ef46b2.jpg构建产生的所有文件存放的目录,默认为${basedir}/target,即项目根目录下的target

ca44ddb2e2b6c2350ab0d77a9d65d2c742e.jpg应该是过滤器,具体用途不太清楚

 

539e318ca37006e8dd95bfd69d1e4051590.jpg项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里

        其中

        aedf523734d4fa94b0cfde0161e62151de3.jpg描述存放资源的目录,该路径相对POM路径,(应该跟上面那个directory一样吧。。。)

        eee50136229ca8af00e5b7fa82d0259a69f.jpg包含的模式列表,目前还不太懂干嘛的

        0231099090e366717a19a9ec2289c19ce1b.jpg是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。目前还不太懂。。。

 

插件,也在build里面,格式是这样的ea84a99e17af6e81691a3db1d12de2b88ef.jpg,里面还是最基本的那三个东西ba28eeeb4dbf391176f76b234631c3ca66d.jpg

除了这三个东西,里面还能配置别的属性6f4c5486abf9c9170862617c924ca45fa24.jpg,例如这样的,但现在也不是很清楚做什么用的。

 

Maven的pom.xml第一次的解析就到这里。其中还有很多配置没有讲,如分发配置,仓库配置,profile配置,报表配置,环境配置,项目信息配置等,包括上面讲了的基础配置,也有很多没有讲明白。在后面的学习中,我会尽量的讲完,学习的完整一点。这次的编排也是很粗糙,还不太会使用这个工具,后面都会有所改善。

转载于:https://my.oschina.net/u/3343536/blog/1830274

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值