Maven学习笔记
Maven
1. Maven 简介
1.1 简介
一款项目管理工具,由java语言进行编写,沿用了java面向对象的思想,把项目开发和管理的过程抽象成了一个 POM (对象模型) ,同时将描述对象的属性方法放到了pom.xml文件中,用于描述对象模型。
1.2 作用
管理jar包,解决jar包间的冲突(jar包:为java的一种文档格式,类似ZIP,为压缩java的文件包。) 2、统一了开发结构,提供了统一标准的项目结构 3、提供标准、跨平台(window-->Linux)的自动化项目构建方式。
2. Maven的安装配置和目录结构
2.1 下载Maven
下载地址:https://maven.apache.org/download.cgi
2.2 环境变量
解压下载的maven包,将bin目录添加到path下
2.3 检查是否安装成功
terminal下执行 mvn-v
2.4 maven项目目录结构
目录 | 作用 |
---|---|
${basedir} | 存放 pom.xml 和所有的子目录 |
${basedir}/src/main/java | 项目的 java 源码 |
${basedir}/src/main/resource | 项目的资源,比如 property 文件 |
${basedir}/src/test/java | 项目的测试类,比如 JUnit 代码 |
${basedir}/src/test/resource | 测试使用的资源 |
2.5 maven常用的构建命令
1 | mvn -v 查看maven版本 |
1.编译java文件
mvn compile
2.执行main方法
mvn exec:java -Dexec.mainClass="com.xxx.demo.Hello"
修改默认仓库位置
打开maven目录 --> conf --> settings.xml
添加仓库位置配置
1 <localRepository>D:/MavenIDEA/repository</localRepository>更改阿里镜像
1
2
3
4
5
6 <mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
3. Maven命令
Maven的命令格式如下:
1 | mvn [plugin-name]:[goal-name] |
命令代表的含义:执行plugin-name
插件的
goal-name
目标。
3.1 常用命令
命令 | 描述 |
---|---|
mvn --version | 版本信息 |
mvn clean | 清理项目临时文件,一般是target目录 |
mvn compile | 编译源代码,一般是编译模块下src/main/java目录 |
mvn package | 项目打包工具,会在模块下的target目录下生成jar或war等文件 |
mvn test | 测试命令,或执行src/test/java/下的junit测试用例 |
mvn install | 将打包的jar/war文件复制到本地仓库,供其他模块使用 |
mvn deploy | 将打包的文件发布到远程参考 |
mvn site | 生成项目相关信息的网站 |
mvn eclipse:eclipse | 将项目转化为Eclipse项目 |
mvn dependency:tree | 打印项目依赖树 |
mvn archetype:generate | 创建Maven的普通java项目 |
mvn tomcat7:run | 在tomcat容器中运行web应用 |
mvn jetty:run | 调用 jetty 插件的 Run 目标,在 Jetty Servlet 容器中启动 web 应用 |
注意:运行maven命令时,需要定位到maven项目的目录,也就是项目的pom.xml文件所在目录
3.2 命令参数
3.2.1 -D 传入属性参数
例如:
mvn package -Dmaven.test.skip=true
以-D开头,将maven.test.skip
设置为true,告诉maven打包的时候跳过单元测试。
3.2.2 -P 使用指定的Profile配置
比如项目开发时有多个环境,比如开发、测试、预发、正式环境,一般在pom.xml中配置。
profiles
定义了各个环境的变量id,filters
中定义了变量配置文件的地址,其中地址中的环境变量就是上面的profile
中定义的值, resources
中是定义哪些目录下的文件会被配置文件中定义的变量替换。
通过maven 可以实现按不同环境进行打包部署,例如:
mvn package -Pdev -Dmaven.test.skip=true
表示打包本地环境,并跳过单元测试。
4. Idea 下配置 Maven 环境
选择 “File” -> "New Projects settings" -> "Settings for new projects"
搜索maven
Maven home directory 改为自己安装路径
User settings file 改为自己安装路径下 conf/settings.xml
5. Maven 项目创建
5.1 创建java项目
5.1.1 新建项目
- "File" -> "New" -> "Project"
- 选择"Maven" , 设置JDK版本,选择maven 项目的模板。quickstart为模板
- GroupId 一般为公司id com.xxx
- ArtifactId 为自己起名字
- 检查Maven环境,选择”Next“
- 右下角弹出的提示框,选择"Enable Auto-Import" (Maven启动自动导入)
5.1.2 编译项目
- 点击右上角 "Add Configurations"
- 点击"+"号,选择"Maven"
- 设置编译项目命令。Name 自定义;Command line 执行的命令:compile
- 点击右上角"Run" or "Debug"
5.1.3 打包项目
- 点击右上角 "Add Configurations"
- 点击"+"号,选择"Maven"
- 设置编译项目命令。Name 自定义;Command line 执行的命令:package
- 点击右上角"Run" or "Debug"
5.2 创建Web项目
5.2.1 新建项目
- "File" -> "New" -> "Project"
- 选择"Maven" , 设置JDK版本,选择maven 项目的模板。webapp为模板
- GroupId 一般为公司id com.xxx
- ArtifactId 为自己起名字
- 检查Maven环境,选择”Next“
- 右下角弹出的提示框,选择"Enable Auto-Import" (Maven启动自动导入)
5.2.2 修改 JDK 版本
1 | <!-- 修改JDK版本为1.8 --> |
5.2.3 设置单元测试版本
1 | <!-- junit的版本修改为4.12 --> |
5.24 删除pluginManagement标签
1 | <pluginManagement> |