基础
作用
-
简单说,
maven
抽象了项目构建过程,解决了项目引入依赖包的问题(有些包还是下载不到)。 -
可以通过
profile
的配置来构不同环境下的项目输出。 -
可以自定义
maven
的插件来处理项目构建过程中的特殊处理。比如创建一个文件夹,发起一个请求到远程,做下数据替换之类的处理。 -
properties
作为profile的公共配置提供给项目中properties
文件使用。当然springcloud
配置服务器 - -。 -
项目输出为 war 的时候,项目资源进行合并。如
cas-overdelay-template
简单的pom
<?xml version="1.0" encoding="UTF-8"?><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">
<parent>
<groupId>com.hsnn.products</groupId> <artifactId>product-platform</artifactId> <version>1.2</version>
</parent>
<modelVersion>4.0.0</modelVersion> <packaging>war</packaging>
<artifactId>mh</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency> <groupId>com.hsnn.plugins</groupId> <artifactId>plugin-basic</artifactId>
</dependency>
<dependency> <groupId>com.hsnn.plugins</groupId> <artifactId>plugin-ftlels</artifactId>
</dependency>
<dependency> <groupId>com.hsnn.plugins</groupId> <artifactId>plugin-util</artifactId>
</dependency>
<dependency> <groupId>com.hsnn.framework</groupId> <artifactId>plugin-medicalstage-util-support</artifactId> <version>1.2-Release</version>
</dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!-- 自定义扩展的包--> <!-- 为了支持jsp能够直接访问 -->
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
</dependencies>
<build>
<finalName>mh</finalName>
</build>
</project>
parent
继承说明
- 可继承的pom元素。主要用到已经标记
groupId:项目组ID,项目坐标的核心元素
version: 项目版本, 项目坐标的核心元素
description: 项目的描述信息,一般都重写。
organization: 项目的组织信息
inceptionYear: 项目的创始年份
url: 项目的URL地址。
developers: 项目开发者信息
contributors: 项目的贡献者信息
distributionManagement: 项目的部署配置
issueManagement: 项目的缺陷跟踪系统信息
ciManagement: 项目的持续集成系统信息
scm: 项目的版本控制系统信息
mailingLists: 项目的邮件列表信息
properties: 自定义的maven属性
dependencies: 项目的依赖配置
dependencyManagement: 项目的依赖管理配置
repositories: 项目的仓库配置
build: 包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等
reporting: 包括项目的报告输出目录配置、报告插件配置等
resource
元素说明
如果项目构建是按标准来配置,默认情况下不需要进行额外配置。
那么什么时候需要进行额外配置呢?
-
不同构建模式profile下,切换不同的文件。比如spring-dev.properties在dev下使用,spring-prod.properties在prod下使用。
-
有部分配置文件在java目录下,那么需要加入到
resource
里面。
finalName
项目构建最后打包出来的名称。
maven的版本定义
通常下载软件的时候会看到如下 :1.3.2-beta-2
约定 < 主版本 >.< 次版本 >.< 增量版本 >-< 里程碑版本 >
1 、表示该版本的主版本号;
3 、表示该版本的次版本号;
2 、表示该版本的增量版本号;
beta-2
、 最后的 beta-2
表示该增量的某一个里程碑。(SNAPSHOT快照版本,beta,rc,release稳定版)
主版本:表示项目的重大架构变更。例如: Maven2 和 Maven1 相去甚远; Struts1 和 Struts2 采用了 不同的架构。
次版本:表示较大范围的功能增加和变化,及 Bug 修复。例如 Nexus 1.5 较 1.4 添加了 LDAP 的支持,并且修复了很多 Bug, 但是从总体架构来说,没有什么变化。
增量版本:顾名思义,这往往指某一个版本的里程碑。例如, Maven3 已经发布了很多里程碑版本,如:3.0-alpha-1
、 3.0-alpha-2
、 3.0-bata-1
等。这里的版本与正式版本 3.0 相比,往往表示不是非常稳定,还需要很多测试。我们用spring 或者开源框架 都是会选择 release
稳定版本,这样版本通常在线上运行了一段时间,很稳定了。所以大家如果在引用别人SNAPSHOT
版本的时候 需要注意 可能存在各种各样的问题。
知道这个主要原因是我们去maven 仓库去找需要的jar包时候,引入的版本的选择。当前选择下载数是最主要的指标。在差不多下载数的时选择高版本的稳定版。
maven
日常使用
在工作的时候,没有将 maven
加入到全局变量中,就直接使用的 idea
的默认的 maven
工具,连配置也是一样。主要想法就是只要约束好idea
的版本,就可以约会到maven的配置,不需要再去关注个人电脑上的下载的maven
版本,同理maven
的配置