Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
镜像和库
参考地址
Maven仓库理解和优先级
Settings Reference
POM Reference
Using Mirrors for Repositories
Introduction to Repositories
Repository Manager
使用镜像的理由
- 加速拉取
- 使用自己的库
- 私服需要
mirrorOf的使用
镜像是为一个或一组特定的仓库服务的
Examples:
*
= everythingexternal:*
= everything not on the localhost and not file based.repo,repo1
= repo or repo1*,!repo1
= everything except repo1
*
号一般是公司私服仓库组使用比较好,如果配置多个镜像,maven会先精确匹配,再根据通配符匹配优先声明的
repository的使用
maven 仓库的优先级:本地仓库 > 私服(profile)> 远程仓库(repository)
当项目声明一个本地存储库中不存在的依赖项(或者对于 SNAPSHOT,当远程存储库包含一个更新的存储库时),远程下载就会被触发, 默认情况下,Maven 将从中央存储库下载。
个性化的库最好在项目里的pom.xml里指定。
公共代理库(镜像)
阿里云
maven手动安装jar包
1 | mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile= |
插件
assembly
自定义打包的范围,常见于一个运行主模块带其它依赖模块一起打包,方便部署
基本配置:
其中descriptorRef是关键,可自行配置,它决定了如何装配你的程序集
1 | <project> |
Creating an Executable JAR
会生成入口文件:META-INF/MANIFEST.MF;
仅仅jar和war支持archive元素;
1 | <project> |