Maven之使用规范

2020-04-23  本文已影响0人  冰河winner

maven的配置文件看似很复杂,其实只需要根据项目的实际背景,设置个别的几个配置项而已。maven有自己的一套默认配置,使用者除非必要,并不需要去修改那些约定内容。这就是所谓的“约定优于配置”。

1、变量规范

1.1 系统变量

除了在setting.xml以及pom.xml当中用properties定义的常量,maven还提供了一些隐式的变量,用来访问系统环境变量。

1.2 本地用户设定

所有用的的 settings.xml 中的设定都可以通过 settings. 前缀进行引用。如

1.3 环境变量

系统的环境变量通过 env. 前缀引用:

1.4 java系统属性

所有JVM中定义的java系统属性。

1.5上级工程的变量

上级工程的pom中的变量用前缀 ${project.parent} 引用。

上级工程的版本也可以这样引用: ${parent.version }

2、目录规范

maven默认的文件存放结构如下:

每一个阶段的任务都知道怎么正确完成自己的工作,比如compile任务就知道从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。

对maven来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。

3、版本规范

maven有自己的版本规范,一般是如下定义

<major version>.<minor version>.<incremental version>-<qualifier>

比如1.2.3-beta-01。要说明的是,maven自己判断版本的算法是major,minor,incremental部分用数字比较,qualifier部分用字符串比较,所以要小心 alpha-2和alpha-15的比较关系,最好用 alpha-02的格式。

maven在版本管理时候可以使用几个特殊的字符串:SNAPSHOTLATESTRELEASE

比如"1.0-SNAPSHOT"。各个部分的含义和处理逻辑如下说明:

3.1 SNAPSHOT

如果一个版本包含字符串SNAPSHOT,Maven就会在安装或发布这个组件的时候将该符号展开为一个日期和时间值,转换为UTC时间。例 如,"1.0-SNAPSHOT"会在2020年5月5日下午2点10分发布时候变成1.0-20200505-141000-1。

这个词只能用于开发过程中,因为一般来说,项目组都会频繁发布一些版本,最后实际发布的时候,会在这些snapshot版本中寻找一个稳定的,用于正式发 布,比如1.4版本发布之前,就会有一系列的1.4-SNAPSHOT,而实际发布的1.4,也是从中拿出来的一个稳定版。

3.2 LATEST

指某个特定构件的最新发布,这个发布可能是一个发布版,也可能是一个snapshot版,具体看哪个时间最后。

3.3 RELEASE

指最后一个发布版。

上一篇下一篇

猜你喜欢

热点阅读