一、maven用途
- java在创建项目的时候,可以自己手动创建,也可以利用工具创建,也就是maven来创建。
- maven可以用来创建项目、部署项目、安装管理依赖、编译代码、管理二进制等。
- maven的目的是使项目过程规范化、自动化、高效化及强大的可扩展性。
- 利用maven自身和插件获得代码检查报告、单元测试覆盖率、实现持续集成
- maven最主要的用途是依赖管理,如果不使用maven,项目若需要某个jar包就需要手动下载,而maven则只要在pom配置文件手动加depency配置就能自动下载需要的依赖的jar包
- 实际上,maven一些命令执行的类似编译代码打包代码,都是执行的java命令,所以,maven就是在执行一系列java命令来完成项目的各种用途
二、maven核心概念
-
pom
(1)maven配置项目中最基础的配置文件,在项目根目录下,一般为pom.xml (2)主要是对项目相关信息的一些配置,最常见的就是依赖的引入配置
-
artifacts
(1)项目将会生成的一些包或者二进制等文件 (2)Artifacts指的就是项目的项目发行时产生的一些文件
-
repositories
(1)存储artifact工具的仓库或者包的仓库,分为本地和远程仓库
-
build lifecycle
(1)每个任务task执行有一个顺序的链条phase,比如mvn install任务执行之前会先执行其他的phase(具体的顺序的phase链条可以自行搜索) (2)几个重要的顺序的phase链条: validate 验证项目是否正确以及必须的信息是否可用 compile 编译源代码 test 测试编译后的代码,即执行单元测试代码 package 打包编译后的代码,在target目录下生成package文件 integration-test 处理package以便需要时可以部署到集成测试环境 verify 检验package是否有效并且达到质量标准 install 安装package到本地仓库,方便本地其它项目使用 deploy 部署,拷贝最终的package到远程仓库和替他开发这或项目共享,在集成或发布环境完成
-
goal
(1)代表某一个具体的task,比如mvn install (2)执行某个goal时候,必须按照顺序执行前边的phase才行,比如mvn install执行的时候,先执行validate\compile\test\package\integration-test\verify这些phase后,再执行install,这是build lifecycle规则
三、maven配置
-
setting.xml
(1)maven工具本身的配置文件是setting.xml,可以配置maven的repository仓库地址,镜像地址等,一般是在maven/conf/setting.xml中
-
pom.xml
(1)setting.xml主要是对maven的配置,那么pom.xml就是对要创建的项目的相关配置,可以配置项目的依赖,jdk版本等,一般是在项目的根目录下,都会有一个pom.xml文件
-
关于maven配置远程镜像(主要是为了下载需要的依赖jar包等):
(1)现在pom.xml文件中引入要使用的依赖 (2)setting.xml中查找镜像标签<mirrors>,因为maven原本的远程仓库地址镜像是国外的,下载需要的jar包速度比较慢,因此可以修改mirrors为中国的镜像地址加快upload速度,一般使用阿里的: <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
四、maven常用的命令
- mvn archetype:generate -DgroupId=otowa.user.dao -DartifactId=user-dao -Dversion=0.01-SNAPSHOT
—— 创建项目 - mvn compile
—— 编译项目 - mvn package
—— 打包项目 - mvn deploy
—— 部署项目 - mvn install
—— 安装jar包到本地仓库repositories - mvn clean
—— 对项目进行清理,清理的过程中会删除删除target目录下编译的内容。 - 其他常用命令参考:https://www.cnblogs.com/wkrbk...
五、参考链接
https://www.trinea.cn/android...
https://www.cnblogs.com/xdp-g...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。