在pom编译后添加了不同版本的Maven: slf4 jar, war因此得到版本冲突错误



我的诗歌出了问题。即使我没有添加任何依赖,在战争中我得到:1. slf4j-api-1.5.11.jar2. slf4j-api-1.6.1.jar3.slf4j-log4j12-1.6.1.jar

问题:由于这个我的战争不能在服务器上运行,并得到关于冲突的错误。我需要解决这个问题。

手动解决方案:我手动从war中删除slf4j-api-1.5.11.jar,它开始在服务器上运行。

你能帮我避免这种手动解决方案吗?我的pom是它自己处理的。我也用过排斥,但没有用。

期待您的帮助

pom.xml

<project 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/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>hsca</groupId>
  <artifactId>hsca</artifactId>
  <version>1.0.0</version>
  <packaging>war</packaging>
  <name>hsca</name>
  <build>
    <sourceDirectory>JavaSource</sourceDirectory>
    <testSourceDirectory>test/java</testSourceDirectory>
    <resources>
      <resource>
        <directory>JavaSource</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>test/java</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
          <finalName>${project.artifactId}</finalName>
          <warName>${artifactId}</warName>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>

  <!-- local libs -->
<!--  <dependency> i will be implementing it later
    <groupId>org.group.project</groupId>
    <artifactId>Project</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/WebContent/WEB-INF/project-1.0.0.jar</systemPath>
</dependency> 
-->

<dependency> 
    <groupId>axisReportNetClient</groupId>
    <artifactId>axisReportNetClient</artifactId>
    <version>10.1.6235.36</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/axisReportNetClient.jar</systemPath>
</dependency> 
<dependency> 
    <groupId>blueviewservice</groupId>
    <artifactId>blueviewservice</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/blueviewservice.jar</systemPath>
</dependency>
<dependency> 
    <groupId>bpjtk-v3.0.3_b20090914</groupId>
    <artifactId>bpjtk-v3.0.3_b20090914</artifactId>
    <version>3.0.3</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/bpjtk-v3.0.3_b20090914.jar</systemPath>
</dependency>
<dependency> 
    <groupId>cwa-v3.2</groupId>
    <artifactId>cwa-v3.2</artifactId>
    <version>3.2</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/cwa-v3.2.jar</systemPath>
</dependency>
<dependency> 
    <groupId>db2jcc</groupId>
    <artifactId>db2jcc</artifactId>
    <version>1.3.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/db2jcc.jar</systemPath>
</dependency>
<dependency> 
    <groupId>db2jcc_license_cu</groupId>
    <artifactId>db2jcc_license_cu</artifactId>
    <version>1.3.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/db2jcc_license_cu.jar</systemPath>
</dependency> 
<!-- <dependency> 
    <groupId>javamelody</groupId>
    <artifactId>javamelody</artifactId>
    <version>1.7.0_01-b08</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/javamelody.jar</systemPath>
</dependency>   
 -->


<dependency> 
    <groupId>microcodealert</groupId>
    <artifactId>microcodealert</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/microcodealert.jar</systemPath>
</dependency>   



<dependency> 
    <groupId>serverfirmwareservices</groupId>
    <artifactId>serverfirmwareservices</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/serverfirmwareservices.jar</systemPath>
</dependency>
<dependency> 
    <groupId>struts2-image-plugin-0.1</groupId>
    <artifactId>struts2-image-plugin-0.1</artifactId>
    <version>0.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/struts2-image-plugin-0.1.jar</systemPath>
</dependency>
 <dependency> 
    <groupId>jxl_2.6.9</groupId>
    <artifactId>jxl_2.6.9</artifactId>
    <version>2.6.9</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/jxl_2.6.9.jar</systemPath>
</dependency>
 <dependency> 
    <groupId>struts2-ssl-plugin-1.1</groupId>
    <artifactId>struts2-ssl-plugin-1.1</artifactId>
    <version>1.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/WebContent/WEB-INF/lib/struts2-ssl-plugin-1.1.jar</systemPath>
</dependency>

  <!-- end of local libs -->    

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>7.0.70</version>
      <scope>provided</scope>
      </dependency>
            <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
    </dependency>

  <dependency>
    <groupId>net.bull.javamelody</groupId>
    <artifactId>javamelody-core</artifactId>
    <version>1.34.0</version>
</dependency>
    <dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.5.4</version>
</dependency>
<dependency>
    <groupId>c3p0</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.1.2</version>
</dependency>
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.8.3</version>
</dependency>
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>commons-digester</groupId>
    <artifactId>commons-digester</artifactId>
    <version>2.0</version>
</dependency>
<dependency>
    <groupId>commons-discovery</groupId>
    <artifactId>commons-discovery</artifactId>
    <version>0.2</version>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-email</artifactId>
  <version>1.4</version>
</dependency>

 <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.2</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.0.1</version>
</dependency>
    <!-- commons-javaflow-20060411 not exact version -->
    <!-- commons-jexl-2.1.1.jar not exact version -->
    <dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.5</version>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging-api</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>

<dependency>
    <groupId>commons-pool</groupId>
    <artifactId>commons-pool</artifactId>
    <version>1.6</version>
</dependency>

  <dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.16</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.3</version>
</dependency>


<!-- Version: 3.3 javaassist lib from central repo-->
<dependency>
    <groupId>javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.3</version>
</dependency>
<dependency>
    <groupId>javax.xml</groupId>
    <artifactId>jaxrpc</artifactId>
    <version>1.1</version>
</dependency>
<!-- Specification-Version: 1.0
Implementation-Version: 1.1 -->
<dependency>
    <groupId>jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.2</version>
</dependency>
<dependency>
    <groupId>org.jopendocument</groupId>
    <artifactId>jOpenDocument</artifactId>
    <version>1.3</version>
</dependency>
<!-- 1.5.9.1 not found, but 1.5.9 and i have added in the pom -->
<dependency>
    <groupId>org.jrobin</groupId>
    <artifactId>jrobin</artifactId>
    <version>1.5.9</version>
</dependency>

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>

<!-- Specification-Version: 1.0
Implementation-Version: 1.0.3
 -->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.0.3</version>
</dependency>
<dependency>
    <groupId>org.openoffice</groupId>
    <artifactId>juh</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.4</version>
</dependency>
<dependency>
    <groupId>org.openoffice</groupId>
    <artifactId>jurt</artifactId>
    <version>3.2.1</version>
</dependency>
<!-- jxl_2.6.9.jar not found -->
<!-- in Utils.java its being used for logging -->
<!-- <dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.10</version>
</dependency> -->
 <dependency>
    <groupId>net.sf.jxls</groupId>
    <artifactId>jxls-core</artifactId>
    <version>1.0.2</version>
</dependency> 

<!-- kaptcha-2.3.jar not found , only old version -->
<!-- <dependency>
    <groupId>com.github.axet</groupId>
    <artifactId>kaptcha</artifactId>
    <version>0.0.9</version>
</dependency> -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.15</version>
    <exclusions>
    <exclusion>
        <groupId>com.sun.jmx</groupId>
        <artifactId>jmxri</artifactId>
    </exclusion>
    <exclusion>
        <groupId>com.sun.jdmk</groupId>
        <artifactId>jmxtools</artifactId>
    </exclusion>
    <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
    </exclusion>
<exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>

    </exclusions>
</dependency>
<!-- exact version not found -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.4.4</version>
</dependency>

<!-- microcodealert.jar not found -->
<dependency>
    <groupId>org.odftoolkit</groupId>
    <artifactId>odfdom-java</artifactId>
    <version>0.8.7</version>
</dependency>
<dependency>
    <groupId>ognl</groupId>
    <artifactId>ognl</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.9</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-examples</artifactId>
    <version>3.9</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-excelant</artifactId>
    <version>3.9</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.9</version>
</dependency>
<!-- central repo -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.9</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.9</version>
</dependency>

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.1.7</version>
</dependency>

<dependency>
    <groupId>org.openoffice</groupId>
    <artifactId>ridl</artifactId>
    <version>2.3.1</version>
</dependency>
<!-- saaj.jar 1.2 -->
<dependency>
    <groupId>axis</groupId>
    <artifactId>axis-saaj</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xalan</groupId>
    <artifactId>serializer</artifactId>
    <version>2.7.1</version>
</dependency>
<!-- serverfirmwareservices.jar not found
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.6.1</version>
</dependency>-->
<!-- repeated version 
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.6.1</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.6.1</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.11</version>
</dependency>-->
<!--
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.5.11</version>
</dependency>
-->

<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>2.5.6</version>
</dependency>
<dependency>
    <groupId>aopalliance</groupId>
    <artifactId>aopalliance</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>2.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>2.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>2.5.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>2.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>2.5.6</version>
</dependency>

<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.0.3</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>2.2.3</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-dojo-plugin</artifactId>
    <version>2.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-dwr-plugin -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-dwr-plugin</artifactId>
    <version>2.2.3</version>
</dependency>
<!-- struts2-image-plugin-0.1.jar not found -->
<!-- https://mvnrepository.com/artifact/com.jgeppert.struts2.jquery/struts2-jquery-plugin -->
<dependency>
    <groupId>com.jgeppert.struts2.jquery</groupId>
    <artifactId>struts2-jquery-plugin</artifactId>
    <version>3.1.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.jgeppert.struts2.jquery/struts2-jquery-richtext-plugin -->
<dependency>
    <groupId>com.jgeppert.struts2.jquery</groupId>
    <artifactId>struts2-jquery-richtext-plugin</artifactId>
    <version>3.1.0</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>2.2.3</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>2.2.3</version>
</dependency>
<!-- struts2-ssl-plugin-1.1.jar not found-->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts-core</artifactId>
    <version>1.3.10</version>
</dependency>

<!-- central repo and only one verion, version not defined-->
<dependency>
    <groupId>struts</groupId>
    <artifactId>struts-legacy</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.openoffice</groupId>
    <artifactId>unoil</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>velocity</groupId>
    <artifactId>velocity-dep</artifactId>
    <version>1.4</version>
</dependency>

<dependency>
    <groupId>wsdl4j</groupId>
    <artifactId>wsdl4j</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>org.apache.servicemix.bundles</groupId>
    <artifactId>org.apache.servicemix.bundles.wsdl4j</artifactId>
    <version>1.6.3_1</version>
</dependency>
<dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.1</version>
</dependency>

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.9.0</version>
</dependency>

<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.3.04</version>
</dependency>
<dependency>
    <groupId>org.apache.struts.xwork</groupId>
    <artifactId>xwork-core</artifactId>
    <version>2.2.1.1</version>
</dependency>


  </dependencies>
</project>

您可以使用依赖管理来确保每个slf4j依赖都是对齐的。

<dependencyManagement>
    <dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.12</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-IMPL-THAT-YOU-WANT</artifactId>
        <version>1.7.12</version>
    </dependency>
    </dependencies>
</dependencyManagement>

要知道哪个依赖需要并导入slf4j,您可以使用:

mvn dependency:tree -Dverbose

虽然YMomb的答案应该可以工作(而且很简单),但您也可以显式地从依赖项中排除传递依赖项。

查找包含哪些依赖项。Slf4j作为传递依赖项,运行

mvn依赖:tree -Dincludes=org.slf4j:*

这将给你类似的东西,(至少它给了我从上面你的依赖)

[INFO] - org.quartz-scheduler:quartz:jar:2.1.7:compile [INFO]
org.slf4j: slf4j-api: jar: 1.6.1:编译

表示'quartz'有它,排除org。

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.1.7</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

您可以对包含slf4j的所有依赖项执行此操作。然后可以定义所需的slf4j版本并使用它

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.6.5</version>
</dependency>

最新更新