Maven的使用技巧 ,使用Maven已经好几年了,在这段时间里,我学到了一些技巧和窍门,可以帮助我更快地使用 Maven。在本文中,我将讨论其中的 5 个技巧。
Maven的rm选项
我们大多数人都在多模块环境中工作,并且经常发生构建在某些模块失败的情况。重新运行整个构建非常痛苦。为了让您免于经历这种痛苦,Maven 有一个名为 rf(即恢复)的选项,您可以从它失败的模块恢复构建。因此,如果您的构建在 myproject-commons 失败,您可以通过键入以下命令从该模块运行构建:
mvn -rf myproject-commons clean install
Maven pl 选项
下一个 Maven 选项可帮助您构建指定的目,而不是构建所有项目。
例如,如果您只需要构建两个模块 myproject-commons 和 myproject-service,您可以键入:
mvn -pl myproject-commons,myproject-service clean install
此命令将仅构建公共项目和服务项目。
Maven类路径排序
在 Maven 中,依赖项按照它们在 pom.xml 中声明的顺序加载。从 2.0.9 版开始,Maven 引入了类路径上依赖项的确定性排序。现在从您的 pom 中保留了顺序,最后添加了通过继承添加的依赖项。了解这一点在调试 NoClassDefFoundError 时真的很有帮助。当我在处理 cglib-2.1_3.jar 在 cglib-nodep-2.1_3.jar 之前加载的时候遇到了 NoClassDefFoundError: org/objectweb/asm/CodeVisitor。由于 cglib-2.1_3.jar 没有这个 CodeVisitor 类,所以遇到了报错。
Maven分类器
我们都知道用于描述依赖项的限定符 groupId、artifactId、version,但还有第四个限定符称为分类器。它允许区分属于同一 POM 但构建不同的两个artifacts,并在版本之后附加到文件名。例如,如果你想构建两个独立的 jar,一个用于 Java 5,另一个用于 Java 6,你可以使用分类器。它可以让您以更高的粒度级别定位您的依赖项。
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope><classifier>jdk16</classifier></dependency>
依赖版本范围
你是否曾经使用过一个库,当你想要你应该总是使用最新版本而不更改 pom.xml 时,它发布得太频繁了。可以使用依赖版本更改来完成。所以,如果你想指定你应该始终使用高于指定版本的版本,你将这样写:
<version>[1.1.0,)</version>
此行表示版本应始终大于或等于 1.1.0