maven简明提要

总结自:https://www.cnblogs.com/luotaoyeah/category/584624.html

功能:项目构建、依赖管理、

项目构建:plugin完成,将plugin绑定到生命周期的某个阶段phase,构建时,指定要运行的生命周期,即按照阶段顺序调用plugin

依赖管理:在maven中所有构件都有一套坐标,用来唯一确定构件的位置:groupId\artifactId\version\packaging\classifier。
依赖信息还要包括type、scope、optional、exclusions。
依赖冲突时,默认是最短路径优先+最先声明优先,但可以用exclusions来自定义解决依赖冲突问题。

仓库:配置在settings文件的下,指定id\name\url\snapshots(是否下载snapshot版本的构件)

仓库的镜像:配置在setttings文件的mirrors元素下,指定id\name\url\mirrorOf

自己的仓库:nexus私服:(当公司中项目较多时,可以自己搭建一个maven仓库,将自己项目的包放到私服上去,同时私服会先将公司项目中用到的组件下载到私服本地,新员工入职时,直接从本地下载组件,速度快):
私服
Nexus 的仓库分为这么几类:

  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
  • proxy 代理仓库:代理公共的远程仓库;
  • virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库

私服上默认有三个用户:admin\deployment\anonymous,其中deployment用户是用于员工将公司内部项目组件发布到私服上设置的用户。确保此用户状态为active

设置下载远程仓库的索引:在私服中,对于proxy代理仓库,设置允许下载其代理的远程仓库的索引,这样当我们需要依赖某个组件时,就可以直接在私服上搜索此组件,而不是去远程仓库速度比较慢。

将私服设置为所有远程仓库的mirror:员工自己本地settings文件中,首先设置私服的repository,然后将私服设置为为所有远程仓库的mirror。

发布组件到私服

  • 首先员工要在本地settings.xml文件中设置distributionManagement元素,设置组件要发布到哪里id、name、url。
  • 其次在settings.xml中设置元素server,设置id(distributionManagement元素的id)、username(私服用户deployment)、password(私服用户deployment的密码)

生命周期:maven有三套生命周期,clean,default,
default生命周期有23个phase阶段,按顺序执行,命令行构建时,可以指定

猜你喜欢

转载自blog.csdn.net/wenxindiaolong061/article/details/81588976