2016-04-19 12 views
1

Nach der Aktualisierung von Firefox änderte ich Versionen von Bibliotheken zu höheren. Folgende Fehler appeard: [ERROR] Dependency Konvergenzfehler für commons-Sammlungen: commons-Sammlungen: 3.2.2 Wege zur Abhängigkeit sind:Abhängigkeit Konvergenz Fehler

[ERROR] +-net:serenity.pom.gradle:0.0.1-SNAPSHOT 
[ERROR] +-net.serenity-bdd:serenity-core:1.1.29-rc.3 
[ERROR] +-org.seleniumhq.selenium:htmlunit-driver:2.20 
[ERROR] +-commons-collections:commons-collections:3.2.2 
[ERROR] and 
[ERROR] +-net:serenity.pom.gradle:0.0.1-SNAPSHOT 
[ERROR] +-net.serenity-bdd:serenity-core:1.1.29-rc.3 
[ERROR] +-io.appium:java-client:3.3.0 
[ERROR] +-commons-validator:commons-validator:1.4.1 
[ERROR] +-commons-collections:commons-collections:3.2.1 
[ERROR] and 
[ERROR] +-net:serenity.pom.gradle:0.0.1-SNAPSHOT 
[ERROR] +-net.serenity-bdd:serenity-core:1.1.29-rc.3 
[ERROR] +-commons-collections:commons-collections:3.2.2 
[ERROR] ] 
[ERROR] -> [Help 1] 

Abhängigkeitsbaum wie folgt aussieht:

[INFO] +- net.serenity-bdd:serenity-core:jar:1.1.29-rc.3:test 
[INFO] | +- org.seleniumhq.selenium:htmlunit-driver:jar:2.20:test 
[INFO] | +- commons-collections:commons-collections:jar:3.2.2:test 
[INFO] | +- io.appium:java-client:jar:3.3.0:test 
[INFO] | | \- commons-validator:commons-validator:jar:1.4.1:test 
[INFO] | |  +- commons-beanutils:commons-beanutils:jar:1.8.3:test 
[INFO] | |  \- commons-digester:commons-digester:jar:1.8.1:test 

Wie zu lösen dieses Problem? Kann ich die Bibliothek manuell wechseln?

PS Hier ist mein pom.xml

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.serenity-bdd</groupId> 
     <artifactId>serenity-core</artifactId> 
     <version>1.1.29-rc.3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.7</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.serenity-bdd</groupId> 
     <artifactId>serenity-jbehave</artifactId> 
     <version>1.9.0</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.assertj</groupId> 
     <artifactId>assertj-core</artifactId> 
     <version>3.2.0</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-enforcer-plugin</artifactId> 
      <version>1.4</version> 
      <executions> 
       <execution> 
        <id>verify</id> 
        <phase>validate</phase> 
        <goals> 
         <goal>enforce</goal> 
        </goals> 
        <inherited>true</inherited> 
       </execution> 
      </executions> 
      <configuration> 
       <failFast>true</failFast> 
       <rules> 
        <DependencyConvergence></DependencyConvergence> 
        <requireReleaseDeps> 
         <onlyWhenRelease>true</onlyWhenRelease> 
        </requireReleaseDeps> 
        <requireJavaVersion> 
         <version>${java.version}</version> 
        </requireJavaVersion> 
       </rules> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.18</version> 
      <configuration> 
       <includes> 
        <include>src/test/java/*.java </include> 
       </includes> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>net.serenity-bdd.maven.plugins</groupId> 
      <artifactId>serenity-maven-plugin</artifactId> 
      <version>1.1.29-rc.1</version> 
      <dependencies> 
       <dependency> 
        <groupId>net.serenity-bdd</groupId> 
        <artifactId>serenity-core</artifactId> 
        <version>1.1.29-rc.3</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <id>serenity-reports</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>aggregate</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+1

Wo ist die Beziehung zu Firefox? Wo ist deine Pom-Datei? – khmarbaise

Antwort

1

Siehe POM Reference, Exclusions:

Ausschlüsse ausdrücklich Maven sagen, dass Sie wollen nicht mit dem angegebenen Projekt, das eine Abhängigkeit von dieser Abhängigkeit ist (mit anderen Worten, seine transitive Abhängigkeit).

Siehe auch Apache Maven Enforcer Rules, Dependency Convergence:

Wenn ein Projekt zwei Abhängigkeiten, A und B, die beide je nach demselben Artefakt, C, wird diese Regel die Build fehl, wenn A auf einer anderen Version ist abhängig C dann hing die Version von C auf von B.

[...]

Und dies gelingen wird.

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-jdk14</artifactId> 
     <version>1.6.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-nop</artifactId> 
     <version>1.6.0</version> 
     <exclusions> 
     <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
+0

@Caitlyn Das ist irgendwie merkwürdig. [Ruhe-Kern-1.1.29-rc.3.pom] (https://repo1.maven.org/maven2/net/serenity-bdd/serenity-core/1.1.29-rc.3/serenity-core- 1.1.29-rc.3.pom) enthält ' ... commons-collections 3.2.2'. [serenity-jbehave-1.9.0.pom] (https://repo1.maven.org/maven2/net/serenity-bdd/serenity-jbehave/1.9.0/serenity-jbehave-1.9.0.pom) enthält ' ... jbehave-core ... commons-kollektionen ... '. So sollte es sein, AFAIU. Wenn ich ein POM mit Ihren Abhängigkeiten erstelle, kompiliert es hier. –