maven依赖最佳实践
尽管Maven提供了“配置之上的约定”解决方案,但是仍然有足够多的必要配置引起严重的头痛。 在这篇文章中,我将与您分享一些最佳实践,以简化对POM文件的维护。
- 请勿使用已弃用的引用,例如$ {artifactId}或$ {pom.artifactId}。 使用新的$ {project.artifactId}语法。 请注意,此语法遵循XML文档结构,这使得记住和预测引用将导致的值变得容易。
- 尽量避免使用继承的属性。 开发人员可以轻松地忘记子POM使用某个属性,并更改该值,从而在意想不到的地方破坏了构建。 其次,在没有找到和检查父POM的情况下无法轻松查找属性的做法很烦人。
- 使用父pom的dependencymanagement部分来定义所有依赖项版本,但不要在此处设置作用域,以便所有依赖项默认情况下都可以进行作用域编译。
- 使用属性定义依赖项版本。 通过这种方式,您可以概览正在使用的所有版本,而无需滚动浏览依赖项部分的多个页面。
- 使用父pom的pluginmanagement部分来定义构建所使用的* all *插件的版本,甚至是标准的maven插件,例如maven-compile-plugin和maven-source-plugin。 这样,当发布新版本的插件时,您的构建不会突然有所不同。
- 当使用不在当前POM上方目录中的父POM时,请在您的父部分中定义一个空的relativePath元素。
- 使用依赖插件检查项目中是否存在不必要的依赖以及未声明但未使用的较少依赖。 该目标称为“分析”,因此请在控制台上运行以下命令:“ mvndependency:analyze”
- 确保pom文件包含下载所有依赖项所需的所有存储库引用。 如果要使用本地存储库而不是从Internet上进行海峡下载,则可以使用Maven设置文件为poms中定义的各个存储库定义镜像。
- 如果使用Nexus,则不要创建同时包含托管存储库和代理存储库的存储库组。 这将大大降低响应速度,因为即使托管的存储库包含请求的工件,Nexus也会检查代理存储库的远程位置。
确保还阅读了Sonatype的最佳实践 。
参考: Geert Schuring博客上来自JCG合作伙伴 Geert Schuring的Maven最佳实践 。
翻译自: https://www.javacodegeeks.com/2012/06/maven-best-practices.html
maven依赖最佳实践