Maven重复类的解决
1. 设置仓库,我的Settings里设置使用了公司的Nexus
<?xml version="1.0"?>
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:\mavenrepo</localRepository> <servers>
<server>
<id>snapshots</id>
<username>snapshots</username>
<password>xxx</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
</servers> <distributionManagement>
<repository>
<id>releases</id>
<name>xxx Nexus Releases</name>
<url>xxxx</url>
</repository>
<snapshotRepository>
<uniqueVersion>false</uniqueVersion>
<id>snapshots</id>
<name>xxx Nexus Snapshots</name>
<url>xxxxx</url>
</snapshotRepository>
</distributionManagement>
<profiles>
<profile>
<id>xxxNexus</id>
<repositories>
<repository>
<id>xxxNexus</id>
<url>xxx</url>
<releases>
<enabled>true</enabled>
<!-- always , daily (default), interval:X (where X is an integer in minutes) or never. -->
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>xxxNexus</id>
<url>xxxx</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles> <activeProfiles>
<activeProfile>xxxNexus</activeProfile>
</activeProfiles> </settings>
2.发现重复类,执行命令
mvn -U clean package -Plocal -Dmaven.test.skip=true enforcer:enforce -DcheckDeployRelease_skip=true
-Dmaven.test.skip=true: 如果命令包含了test phase,则忽略单元测试
enforcer:enforce: 查找重复类
-DcheckDeployRelease_skip: 不知道什么意思
执行命令后,输出如下

可以发现 jcl-over-slf4j 与 commons-logging 包有重复类冲突
3. 在pom里查找重复类冲突的包并排除重复类冲突
由于在我的pom里并没有显式写入common-logging的dependency,所以我们需要查找那个jar包依赖了commons-logging,执行如下命令
mvn -U dependency:tree -Dverbose
发现如下片段

在这个叫qsso-client的库里依赖了commons-logging包,所以我们在pom里将其排除
3. 排除重复类
<dependency>
<groupId>com.xxx.security</groupId>
<artifactId>qsso-client</artifactId>
<version>${qsso-client.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
这样就将qsso-client的commons-logging包排除了,之后再运行enforcer:enforce则不会再报错
Maven重复类的解决的更多相关文章
- maven 重复依赖不同版本 选择规则
maven 重复依赖不同版本 选择规则 本篇主要来看看 maven 对于 重复依赖的jar的不同版本时候 它内部的选择规则, 很多时候我们在搭建环境的时候 不注意就会存在依赖冲突等问题 那依赖冲突的时 ...
- java表单重复提交常用解决办法
最近在看些基础的东西,顺便做下笔记.相信大家在平时网页使用中,经常会有按钮重复点击,然后点不动刷新,还有当网络延时比较厉害点了没反应在点击的重复提交.为了避免这种情况,总结了一下4点处理方案 表单重复 ...
- springboot打包成jar包后找不到xml,找不到主类的解决方法
springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...
- 运行Java cmd程序 找不到或无法加载主类怎么解决
//这个问题原因有以下几种,但是和环境变量并没有太大的关系 //能够执行java 和 javac 就证明你的环境变量已经配置好了,其实 classpath 可以不配置 //假如有如下文件:H:\cod ...
- atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc
atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc 1.1. 修改此java文件,让他启动编译,还是不能生成了新的class, 1.2. 估计ide调试锁死class ,查看de ...
- cookie工具类,解决servlet3.0以前不能添加httpOnly属性的问题
最近在解决XSS注入的问题,由于使用的servlet版本是2.5,不支持httpOnly的属性,故做了个工具类来实现cookie的httpOnly的功能.全类如下: /** * cookie工具类,解 ...
- Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法
Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类 的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...
- maven提示错误的解决办法
import或者new一个的maven project的时候,提示如下错误 Description Resource Path Location TypeCannot read ...
- java查找重复类/jar包/普通文件
开发web应用时,有时更新了类却没有生效,其实是因为jboss/tomcat中其他发布包下有同名类(包括全路径都相同). 于是萌发了做个程序来检查指定目录是否存在重复类(通过asm从类文件中取类的全路 ...
随机推荐
- MSSQL反旋转的例子
with cte as ( select 'A' as tag , as num_1 , as num_2 , as num_3 , as num_4 ,null as num_5 union sel ...
- [Spring MVC] - @ModelAttribute使用
在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里. 如果把@ModelAttrib ...
- 二、Spring——AoP
AOP概述 AOP是OOP的有益补充,他为程序开发提供了一个崭新的思考角度,可以将重复性的横切逻辑抽取到统一的模块中,通过OOP的纵向抽象和AOP的横向抽取,程序才能真正解决复杂性代码问题. Spri ...
- (C++) CreateThread
先理解一下函数原型: HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, // 指向SECUR ...
- work flow
- Aquarium Cycling
http://www.fishyou.com/aquarium-cycling.php Aquarium Cycling Aquarium cycling actually refers to the ...
- 33. Minimum Depth of Binary Tree && Balanced Binary Tree && Maximum Depth of Binary Tree
Minimum Depth of Binary Tree OJ: https://oj.leetcode.com/problems/minimum-depth-of-binary-tree/ Give ...
- Monty Hall Problem的一个图解,感觉不错
从Coursera.org上的台大概率课讨论组里拿来的 如果不转换,选中汽车的概率是1/3,非常显然. 但转换后选中汽车的概率变成2/3就有点反直觉了,并不是太容易想明白. 因为转换其实有4种:汽车- ...
- is not in the sudoers file 问题解决【转载】
解决方案:首需要切换到root身份$su - 或者 $sudo -s (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还 ...
- appframework(jqmobi) 3.0 设置
$(document).on("panelunload",'#mainPage',function(e){ alert('dddddd'); }); 1.重写 data-load ...