用dependency插件解决依赖包冲突
偶然翻阅了下 maven dependency 插件的官方文档,颇有收获,记录一下。可能有些标题党的嫌疑,并没有具体介绍怎么解决依赖冲突问题,不过既然你都打印出了依赖树,冲突关系已然在树中显示的清清楚楚了。 依赖树
# 只想看依赖树中包含 groupId 为 javax.serlet 的枝干 mvn dependency:tree -Dincludes=javax.servlet # 不想看依赖树中包含 groupId 为 javax.serlet 的枝干 mvn dependency:tree -Dexcludes=javax.servlet 参数的格式(pattern)定义如下:
每个部分(冒号分割的部分)是支持 mvn dependency:tree -Dincludes=javax.servlet,org.apache.* 默认情况下 清空被本地仓库(purge-local-repository)有时候打包时会遇到一些莫名其妙的问题,百思不得其解,但是清空本地仓库后问题就解决了(就像重启电脑一般神奇)。之前都是去本地私服目录把某个groupId对应的jar包都删了或者 mvn dependency:purge-local-repository 复制依赖或某些jar包到指定目录使用 dependency 的 copy-depenecis goal 把依赖的jar复制到指定目录前,在pom文件配置如下: <project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>/path/to/dest</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins> </build> [...] </project> 更多参数信息参见dependency:copy-dependencies 如果只想复制极少的几个jar包到指定目录的话可以使用 <project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> </artifactItem> </artifactItems> <outputDirectory>/path/to</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> </configuration> </execution> </executions> </plugin> </plugins> </build> [...] </project> 据说 参考 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |