本文已参与「新人创作礼」活动,一起开启掘金创作之路。
2.3 Maven
- Maven是专门管理和构建Java项目的工具,它的主要功能有:
- 提供一套标准化的项目结构(eclipse、idea通用代码)
- 提供一套标准化的构建流程(编译、测试、打包、发布......)
- 提供一套依赖管理机制(jar包、插件等)
2.3.1 Maven 安装配置
- 说明:当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
- 如果有,则在项目中之间引用;
- 如果没有,则会去中央仓库中下载对应的jar包到本地仓库。
- 下载仓库地址: maven下载
- 配置环境变量:
紧接着在path中设置:
- 然后运行:mvn -version 当出现下面内容说明环境变量配置成功
- 配置本地仓库: 修改conf/settings.xml中的为一个指定目录
- 配置阿里云的私服:修改conf/settings.xml中的 标签,为其添加如下子标签:(下载速度很快)
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.3.2 Maven的基本使用
2.3.2.1 Maven的常用命令
- compile:编译
- clean:清理
- test:测试
- package:打包(生成jar包)
- windows java -jar xxx 运行
- liunx nohup java -jar xxx.jar &
- 如果想停止jar运行,ps -ef查看进程(进程多的话也可以加上grep),找到对应的java进程,kill掉。
- jar xvf test.jar 解压包
- install:安装(将jar包存储到本地仓库中)
2.3.2.2 Maven的生命周期
- Maven构建项目生命周期描述的是 一次构建过程经历 一共经历了多少个事件
- Maven对项目构建的生命周期划为3套
- clean:清理工作
- default:核心工作,例如编译,测试,打包,安装等
- site:产生报告,发布站点等
- 同一生命周期内,执行后面的命令,前面的所有命令会自动执行(complie->clean->test->package->install)
2.3.2.3 IDEA 配置 Maven环境
- 选择IDEA中File --> Settings
- 搜索 maven
- 设置IDEA 使用本地安装的 Maven,并修改配置文件路径
2.3.2.4 Maven坐标详情
- Maven中的坐标是 资源的唯一标识
- 使用坐标来定义项目或者引入项目中需要的依赖
- Maven坐标的主要组成
- groupld:定义当前Maven项目隶属组织的名称(通常是域名反写,例如:com.itlaity)
- artifactld:定义当前Maven项目的名称(通常是模块的名称,例如:order-server、goods-server)
- version:定义当前项目版本号
2.3.2.5 创建Maven项目
参考:IntelliJ IDEA 15 创建maven项目 - Tom1997 - 博客园
2.3.2.5 IDEA 导入Maven项目
2.3.2.6 Maven插件
配置Maven-Helper插件
- 选择IDEA中 File ->Settings
- 选择 Plugins
- 搜索 Maven,现在第一个 Maven Helper,点击install安装即可
- 重启IDEA
2.3.3 依赖管理
使用坐标导入jar包
- 在pom.xml 中编写 标签
- 在 标签中 使用 引入坐标
- 定义坐标的 groupld,artifatld,version
- 点击刷新按钮,使坐标生效。
<!--导入mysql 驱动 jar包-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
</dependencies>