1.maven的常见概念lifecycle ,phase, goal,gav和pom
pom :工程对象模型,定义了软件工程的生命周期,最终产物等等内容。
lifecycle :maven将java软件产品从源码到最终的交付结果(jar或者war)的整个流程定义为工程的生命周期
详细介绍参考:Maven的构建生命周期理解 - EasonJim - 博客园 https://www.cnblogs.com/EasonJim/p/6816340.html
phase :指的是lifecycle 中的某一个阶段(比如compile编译阶段)
goal :指的是maven插件的执行目标;
GAV : group artifactId version 通过这3个属性进行交付成果的下载路径定位
举例说明:
下载地址:
http://central.maven.org/maven2/org/springframework/spring-aop/5.0.7.RELEASE/spring-aop-5.0.7.RELEASE.jar
maven的插件机制:maven通过不同的插件来完成Lifecycle不同phase的相应工作。maven默认实现的插件覆盖了所有的lifecyce的各个阶段,通常情况不需要人为去改变插件和phase的对应关系。
实战举例:
在进行maven工程的打包时,往往需要先clean ,这时可以将clean插件绑定validate阶段,这样执行package前就会执行clean。
2.maven私服的搭建和使用
Maven入门:使用Nexus搭建Maven私服及上传下载jar包 - 邹阳 - 博客园
https://www.cnblogs.com/tyhj-zxp/p/7605879.html
3.maven插件的编写案例
一个可以根据velocity模板生成增删改查代码的maven 插件
https://gitee.com/springbootPlus/coderhelper.git
4.自定义maven工程的项目骨架
maven自定义archetype - Happy-Coder - 博客园
https://www.cnblogs.com/happy-coder/p/6430802.html
特别注意:
部署生成的archetype到本地仓库
cd进入generated-sources/archetype目录,运行maven命令:mvn clean install,到这里我们的模板骨架项目基本完成。
springboot提供了更好的项目骨架初始化,这个功能就显得比较鸡肋了
用户配置user settings: user.home/.m2/settings.xml
需要注意的是:局部配置优先于全局配置。
配置优先级从高到低:pom.xml> user settings > global settings
如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。
maven全局配置文件settings.xml详解 - 静默虚空 - 博客园
https://www.cnblogs.com/jingmoxukong/p/6050172.html