I would like to upgrade version of spring-boot-starter-logging, but I am facing the problem with overriding maven dependency.
Dependency tree before any changes:
[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.0.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.1.RELEASE:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
[INFO] | | | | \- org.apache.logging.log4j:log4j-api:jar:2.10.0:compile
[INFO] | | | \- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
By modifying parent pom and overriding dependency in dependencyManagement block:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies>
</dependencyManagement>
I am able to override "sole dependency" - only spring-boot-starter-logging version is updated, but child dependencies (logback-classic and log4j-to-slf4j) exists still in old versions:
[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.0.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.0.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.6.2:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
[INFO] | | | | \- org.apache.logging.log4j:log4j-api:jar:2.10.0:compile
[INFO] | | | \- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
Is it possible to upgrade child dependency versions by overriding version of spring-boot-starter-logging so that new versions of child dependencies will be taken from spring-boot-starter-logging pom?
I know that I can override all the child versions one by one in dependencyManagement block, but I would like to know if there is another possibility.
Related
I am trying to fix log4j vulnerabilities and I have updated the existing log4j to the latest log4j-core version.
I tried adding exclusion in the googlecode.owasp dependency but the old version of log4j-1.2.12 is added in the war file. As of now, there is no change in the maven plugin.
Please let me know how to exclude log4j-1.2.12.
maven dependency:tree
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) # Invoice ---
[INFO] Bookings:Invoice:war:0.0.1-SNAPSHOT
[INFO] +- Bookings:Miscellaneous:jar:0.0.1-SNAPSHOT:compile
[INFO] | +- org.owasp.esapi:esapi:jar:2.1.0:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.5:compile
[INFO] | | | \- commons-digester:commons-digester:jar:1.8:compile
[INFO] | | +- commons-beanutils:commons-beanutils-core:jar:1.7.0:compile
[INFO] | | +- xom:xom:jar:1.2.5:compile
[INFO] | | | \- xalan:xalan:jar:2.7.0:compile
[INFO] | | \- org.beanshell:bsh-core:jar:2.0b4:compile
[INFO] | + xalan:serializer:jar:2.7.1:compile
[INFO] | | \- xml-apis:xml-apis:jar:1.3.04:compile
[INFO] | +- org.owasp.antisamy:antisamy:jar:1.4.4:compile
[INFO] | | +- xerces:xercesImpl:jar:2.8.1:compile
[INFO] | | +- org.apache.xmlgraphics:batik-css:jar:1.7:compile
[INFO] | | | +- org.apache.xmlgraphics:batik-ext:jar:1.7:compile
[INFO] | | | +- org.apache.xmlgraphics:batik-util:jar:1.7:compile
[INFO] | | | \- xml-apis:xml-apis-ext:jar:1.3.04:compile
[INFO] | | +- net.sourceforge.nekohtml;nekohtml:jar:1.9.12:compile
[INFO] | | \- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] | +- com.mikesamuel:json-sanitizer:jar:1.2.0:compile
[INFO] | +- com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:jar:r156:compile
[INFO] | | +- com.google.guava:guava:jar:31.1-jre:compile (version selected from constraint [11.0,))
[INFO] | | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | | +- org.checkerframework:checker-qual:jar:3.12.0:compile
[INFO] | | | +- com.google.errorprone:error_prone_annotations:jar:2.11.0:compile
[INFO] | | | \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | | \- com.google.code.findbugs:jsr305:jar:3.0.2:compile (version selected from constraint [1.3.9,))
[INFO] | \- log4j:log4j:jar:1.2.12:compile
It looks like Bookings:Miscellaneous:jar depends on log4j.
Change the bookings:miscellaneous dependency to something like this:
<dependency>
<groupId>Bookings</groupId>
<artifactId>Miscellaneous</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
Then add a dependency to logback.
Something like this:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>{someversion-your-choise}</version>
</dependency>
Finally,
add the adaptor from log4j to slf4j:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>{someversion-your-choise}</version>
</dependency>
I have a simple hiverunner tests from - https://github.com/klarna/HiveRunner/blob/master/src/test/java/com/klarna/hiverunner/ExecuteScriptIntegrationTest.java and I want to add it to my multimodule maven project.
After adding tests, resources, plugins and dependencies I got an exception. I tried to create the new maven project and add the same to it. It worked successfully. I tried to execute mvn dependency:tree and comparing the result.
2020-04-13T21:11:16,626 WARN DataNucleus.Query:106 - Query for candidates of org.apache.hadoop.hive.metastore.model.MDatabase and subclasses resulted in no possible candidates
org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "DBS" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
Could you help me to resolve this problem:
pom.xml contains
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.klarna</groupId>
<artifactId>hiverunner</artifactId>
<version>5.1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
Working project contains next:
+- org.apache.hive:hive-jdbc:jar:2.3.6:compile
[INFO] | | +- org.apache.hive:hive-metastore:jar:2.3.6:compile
[INFO] | | | +- javolution:javolution:jar:5.5.1:compile
[INFO] | | | +- org.apache.hbase:hbase-client:jar:1.1.1:compile
[INFO] | | | | +- org.apache.hbase:hbase-annotations:jar:1.1.1:compile
[INFO] | | | | +- org.apache.hbase:hbase-protocol:jar:1.1.1:compile
[INFO] | | | | +- io.netty:netty-all:jar:4.0.23.Final:compile
[INFO] | | | | +- org.jruby.jcodings:jcodings:jar:1.0.8:compile
[INFO] | | | | +- org.jruby.joni:joni:jar:2.1.2:compile
[INFO] | | | | \- com.github.stephenc.findbugs:findbugs-annotations:jar:1.3.9-1:compile
[INFO] | | | +- com.jolbox:bonecp:jar:0.8.0.RELEASE:compile
And the unworking version contains
| +- org.apache.hive:hive-jdbc:jar:1.2.1:compile
[INFO] | | +- org.apache.hive:hive-metastore:jar:1.2.1:compile
[INFO] | | | +- com.jolbox:bonecp:jar:0.8.0.RELEASE:compile
[INFO] | | | +- org.apache.derby:derby:jar:10.10.2.0:compile
[INFO] | | | +- org.datanucleus:datanucleus-api-jdo:jar:3.2.6:compile
[INFO] | | | +- org.datanucleus:datanucleus-core:jar:3.2.10:compile
[INFO] | | | +- org.datanucleus:datanucleus-rdbms:jar:3.2.9:compile
[INFO] | | | +- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] | | | +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] | | | +- javax.jdo:jdo-api:jar:3.0.1:compile
[INFO] | | | | \- javax.transaction:jta:jar:1.1:compile
You should run the hive schema .sql scripts mentioned in $HIVE_HOME\scripts\metastore\upgrade\mysql.
NOTE: I was using MySql as the underlying db for hive.
I have multi-module maven project whenever I run it, I get the following error:
Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation
I have tried several different ways to remove it but nothing works.
For example:
1) Resolve multiple SLF4J bindings in maven project
2) Spring Boot: multiple SLF4J bindings
3) https://dzone.com/articles/solving-dependency-conflicts-in-maven
But none of the above solutions is working for me.
Here is the module's pom.xml:
<dependencies>
<dependency>
<groupId>com.mydomain</groupId>
<artifactId>commons-module</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.littleshoot</groupId>
<artifactId>proxy</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Here is the dependency tree for the module:
com.mydomain:circuit-module:jar:1.0-SNAPSHOT
[INFO] +- com.mydomain:commons-module:jar:1.0-SNAPSHOT:compile
[INFO] | +- javax.validation:validation-api:jar:2.0.1.Final:compile
[INFO] | +- org.postgresql:postgresql:jar:42.2.1:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.0.0.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-aop:jar:2.0.0.RELEASE:compile
[INFO] | | | \- org.aspectj:aspectjweaver:jar:1.8.13:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.0.0.RELEASE:compile
[INFO] | | | +- com.zaxxer:HikariCP:jar:2.7.8:compile
[INFO] | | | \- org.springframework:spring-jdbc:jar:5.0.4.RELEASE:compile
[INFO] | | +- org.hibernate:hibernate-core:jar:5.2.14.Final:compile
[INFO] | | | +- org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile
[INFO] | | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | | | +- org.javassist:javassist:jar:3.22.0-GA:compile
[INFO] | | | +- antlr:antlr:jar:2.7.7:compile
[INFO] | | | +- org.jboss:jandex:jar:2.0.3.Final:compile
[INFO] | | | +- com.fasterxml:classmate:jar:1.3.4:compile
[INFO] | | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] | | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[INFO] | | +- org.springframework.data:spring-data-jpa:jar:2.0.5.RELEASE:compile
[INFO] | | | +- org.springframework.data:spring-data-commons:jar:2.0.5.RELEASE:compile
[INFO] | | | +- org.springframework:spring-orm:jar:5.0.4.RELEASE:compile
[INFO] | | | \- org.springframework:spring-tx:jar:5.0.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-aspects:jar:5.0.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-mail:jar:2.0.0.RELEASE:compile
[INFO] | | \- com.sun.mail:javax.mail:jar:1.6.1:compile
[INFO] | | \- javax.activation:activation:jar:1.1:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-freemarker:jar:2.0.0.RELEASE:compile
[INFO] | | \- org.freemarker:freemarker:jar:2.3.27-incubating:compile
[INFO] | +- commons-validator:commons-validator:jar:1.6:compile
[INFO] | | +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
[INFO] | | +- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | | \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-amqp:jar:2.0.0.RELEASE:compile
[INFO] | | +- org.springframework:spring-messaging:jar:5.0.4.RELEASE:compile
[INFO] | | \- org.springframework.amqp:spring-rabbit:jar:2.0.2.RELEASE:compile
[INFO] | | +- org.springframework.amqp:spring-amqp:jar:2.0.2.RELEASE:compile
[INFO] | | +- com.rabbitmq:amqp-client:jar:5.1.2:compile
[INFO] | | +- com.rabbitmq:http-client:jar:1.3.1.RELEASE:compile
[INFO] | | +- org.springframework:spring-web:jar:5.0.4.RELEASE:compile
[INFO] | | \- org.springframework.retry:spring-retry:jar:1.2.2.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-data-redis:jar:2.0.0.RELEASE:compile
[INFO] | | \- org.springframework.data:spring-data-redis:jar:2.0.5.RELEASE:compile
[INFO] | | +- org.springframework.data:spring-data-keyvalue:jar:2.0.5.RELEASE:compile
[INFO] | | \- org.springframework:spring-oxm:jar:5.0.4.RELEASE:compile
[INFO] | \- redis.clients:jedis:jar:2.9.0:compile
[INFO] | \- org.apache.commons:commons-pool2:jar:2.5.0:compile
[INFO] +- org.littleshoot:proxy:jar:1.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-cache:jar:2.0.0.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:5.0.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.0.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.0.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-expression:jar:5.0.4.RELEASE:compile
[INFO] | \- org.springframework:spring-context-support:jar:5.0.4.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.0.0.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test:jar:2.0.0.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.0.0.RELEASE:test
[INFO] | +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] | | +- net.minidev:json-smart:jar:2.3:test
[INFO] | | | \- net.minidev:accessors-smart:jar:1.2:test
[INFO] | | | \- org.ow2.asm:asm:jar:5.0.4:test
[INFO] | | \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] | +- junit:junit:jar:4.12:test
[INFO] | +- org.assertj:assertj-core:jar:3.9.1:test
[INFO] | +- org.mockito:mockito-core:jar:2.15.0:test
[INFO] | | +- net.bytebuddy:byte-buddy:jar:1.7.10:test
[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.7.10:test
[INFO] | | \- org.objenesis:objenesis:jar:2.6:test
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] | +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] | +- org.springframework:spring-core:jar:5.0.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-jcl:jar:5.0.4.RELEASE:compile
[INFO] | +- org.springframework:spring-test:jar:5.0.4.RELEASE:test
[INFO] | \- org.xmlunit:xmlunit-core:jar:2.5.1:test
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.5:test
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.9:test
[INFO] | \- commons-codec:commons-codec:jar:1.11:test
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:test
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:test
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.9.4:test
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.0.0.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:2.0.0.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.0.0.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.0.RELEASE:compile
[INFO] | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
[INFO] | | | \- org.apache.logging.log4j:log4j-api:jar:2.10.0:compile
[INFO] | | \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] | +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.19:runtime
[INFO] +- commons-lang:commons-lang:jar:2.6:compile
[INFO] \- org.projectlombok:lombok:jar:1.16.20:provided
Where should I put the tags along with the module to be excluded so that it works?
Excluding logging from boot starter might be what you want, but then you may need to add a dependency for your specific logging framework.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!-- Exclude Spring Boot logging -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
That or excluding Logback from spring-boot-starter-logging in a similar way
I have a pom.xml file with several dependencies, one of them being c3p0-0.9.5.1.jar. However, when deploying the webapp with Tomcat7, the WEB-INF/lib subdirectory contains two versions for the same dependency:
c3p0-0.9.1.1.jar
c3p0-0.9.5.1.jar
I want to exclude version 0.9.1.1. I run:
mvn dependency:tree
However, only version 0.9.5.1 appears, the other jar file is not listed here. I need to exclude that version because it's causing a library conflict and currently my ugly workaround is manually removing the 0.9.1.1 version via rm and restarting Tomcat7.
I also tried adding an <exclude> block on each dependency but the file is still placed in the WEB-INF/lib subdirectory of the Tomcat7 webapp subdirectory.
Maven version is 3.0.5-1.
How can I find out what dependency is generating that old version and how can I forcibly exclude it?
This is the full pom.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<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>com.login.cas</groupId>
<artifactId>local-cas-management</artifactId>
<packaging>war</packaging>
<version>4.1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>cas-management</warName>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-management-webapp</artifactId>
<version>${cas.version}</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-ldap</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>${xml.apis.version}</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0.version}</version>
</dependency>
</dependencies>
<properties>
<commons.dbcp.version>2.0</commons.dbcp.version>
<cas.version>4.1.1</cas.version>
<hibernate.version>4.3.10.Final</hibernate.version>
<mysql.connector.version>5.1.6</mysql.connector.version>
<xml.apis.version>1.4.01</xml.apis.version>
<c3p0.version>0.9.5.1</c3p0.version>
</properties>
<repositories>
<repository>
<id>ja-sig</id>
<url>http://oss.sonatype.org/content/repositories/releases/ </url>
</repository>
</repositories>
</project>
This would be the associated dependency:tree. As you can see, there's no version 0.9.1.1.
[INFO] com.login.cas:local-cas-management:war:4.1.0-SNAPSHOT
[INFO] +- org.jasig.cas:cas-management-webapp:war:4.1.1:runtime
[INFO] +- org.hibernate:hibernate-core:jar:4.3.10.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile
[INFO] | +- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.5.Final:compile
[INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | +- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | \- org.jboss:jandex:jar:1.1.0.Final:compile
[INFO] +- org.hibernate:hibernate-entitymanager:jar:4.3.10.Final:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.6:compile
[INFO] +- org.jasig.cas:cas-server-support-jdbc:jar:4.1.1:compile
[INFO] | +- org.jasig.cas:cas-server-core:jar:4.1.1:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api:jar:4.1.1:compile
[INFO] | | +- org.jasig.inspektr:inspektr-audit:jar:1.2.GA:compile
[INFO] | | | \- org.jasig.inspektr:inspektr-common:jar:1.2.GA:compile
[INFO] | | +- io.dropwizard.metrics:metrics-core:jar:3.1.2:compile
[INFO] | | +- io.dropwizard.metrics:metrics-annotation:jar:3.1.2:compile
[INFO] | | +- org.jasig.service.persondir:person-directory-impl:jar:1.7.0:compile
[INFO] | | | +- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.7:compile
[INFO] | | | | +- com.sun.xml.bind:jaxb-core:jar:2.2.7:compile
[INFO] | | | | | +- javax.xml.bind:jaxb-api:jar:2.2.7:compile
[INFO] | | | | | \- com.sun.istack:istack-commons-runtime:jar:2.16:compile
[INFO] | | | | \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[INFO] | | | | \- javax.xml.bind:jsr173_api:jar:1.0:compile
[INFO] | | | \- org.jasig.service.persondir:person-directory-api:jar:1.7.0:compile
[INFO] | | +- commons-codec:commons-codec:jar:1.10:compile
[INFO] | | +- org.springframework:spring-core:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-beans:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-webmvc:jar:4.1.6.RELEASE:compile
[INFO] | | | \- org.springframework:spring-web:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-context-support:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-tx:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework:spring-context:jar:4.1.6.RELEASE:compile
[INFO] | | | \- org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[INFO] | | +- org.springframework.security:spring-security-core:jar:4.0.1.RELEASE:compile
[INFO] | | +- commons-jexl:commons-jexl:jar:1.1:runtime
[INFO] | | +- commons-io:commons-io:jar:2.4:compile
[INFO] | | +- org.reflections:reflections:jar:0.9.10:compile
[INFO] | | | \- com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.4.1:compile
[INFO] | | | +- org.apache.httpcomponents:httpcore:jar:4.4.1:compile
[INFO] | | | \- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] | | +- javax.cache:cache-api:jar:1.0.0:compile
[INFO] | | +- org.jsr107.ri:cache-ri-impl:jar:1.0.0:runtime
[INFO] | | | \- javax.enterprise:cdi-api:jar:1.0-SP4:runtime
[INFO] | | | +- org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:jar:1.0.0.Beta1:runtime
[INFO] | | | +- javax.annotation:jsr250-api:jar:1.0:runtime
[INFO] | | | \- javax.inject:javax.inject:jar:1:runtime
[INFO] | | +- com.google.guava:guava:jar:18.0:compile
[INFO] | | +- org.bitbucket.b_c:jose4j:jar:0.4.1:compile
[INFO] | | \- org.apache.commons:commons-collections4:jar:4.0:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] | +- org.springframework:spring-jdbc:jar:4.1.6.RELEASE:compile
[INFO] | +- org.springframework:spring-orm:jar:4.1.6.RELEASE:compile
[INFO] | +- org.apache.shiro:shiro-core:jar:1.2.3:compile
[INFO] | | \- commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] | +- org.aspectj:aspectjrt:jar:1.8.6:compile
[INFO] | +- org.aspectj:aspectjweaver:jar:1.8.6:compile
[INFO] | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | +- org.glassfish.web:javax.el:jar:2.2.6:runtime
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.12:compile
[INFO] | +- org.slf4j:jul-to-slf4j:jar:1.7.12:runtime
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.3:runtime
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.3:runtime
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.3:runtime
[INFO] | +- org.apache.logging.log4j:log4j-jcl:jar:2.3:runtime
[INFO] | \- org.jasig.inspektr:inspektr-aspects:jar:1.2.GA:compile
[INFO] +- org.jasig.cas:cas-server-support-ldap:jar:4.1.1:compile
[INFO] | +- org.springframework.webflow:spring-webflow:jar:2.4.1.RELEASE:compile
[INFO] | | +- opensymphony:ognl:jar:2.6.11:compile
[INFO] | | +- org.springframework.webflow:spring-binding:jar:2.4.1.RELEASE:compile
[INFO] | | \- org.springframework.webflow:spring-js:jar:2.4.1.RELEASE:compile
[INFO] | | \- org.springframework.webflow:spring-js-resources:jar:2.4.1.RELEASE:compile
[INFO] | +- org.ldaptive:ldaptive:jar:1.0.7:compile
[INFO] | +- org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[INFO] | +- joda-time:joda-time:jar:2.8.1:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-databind:jar:2.5.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.0:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.5.3:compile
[INFO] +- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] \- com.mchange:c3p0:jar:0.9.5.1:compile
[INFO] \- com.mchange:mchange-commons-java:jar:0.2.10:compile
If you want to proceed in a clean way, I strongly suggest you use Eclipse to check your dependency hierarchy. The Maven integration plugin provides for pom.xml files a Dependency Hierarchy view that lets you view which dependencies refer to one another.
In this view, you can manually exclude a given artifact by right-clicking it and selecting Exclude Maven Artifact... from the context menu.
You will be shown a dialog asking where to place dependency exclusion. Usually you shouldn't have to change the selection. Click OK and the <exclude> element will be automatically placed into the pom.xml file for you. If you are comfortable with the modified pom.xml file, don't forget to save it before you rebuild your project.
Apart from adjusting your pom.xml file, run a mvn clean package command to make sure no stale dependencies remain in your target folder.
Try this
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/lib/c3p0-0.9.1.1.jar</packagingExcludes>
</configuration>
</plugin>
We have a REST server that we want to build in jenkins. Locally everything's builds fine but when I tell jenkins to build the project it gives me
[INFO] Copying 1 resource
[WARNING] POM for 'com.sun.jersey:jersey-core:pom:1.8:compile' is invalid. Its dependencies (if any) will NOT be available to the current build.
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 2 source files to /usr/share/tomcat6/.jenkins/workspace/xx-engine-integration-server SNAPSHOT/target/classes
[JENKINS] Archiving /usr/share/tomcat6/.jenkins/workspace/xx-engine-integration-server SNAPSHOT/pom.xml to /usr/share/tomcat6/.jenkins/jobs/xx-engine-integration-server SNAPSHOT/modules/our.package.apps$xx-engine-integration-server/builds/2012-07-04_05-23-22/archive/our.package.apps/xx-engine-integration-server/1.0-SNAPSHOT/xx-engine-integration-server-1.0-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure error: error reading /usr/share/tomcat6/.m2/repository/com/sun/jersey/jersey-core/1.8/jersey-core-1.8.jar; error in opening zip file
Anyone seen this before? Why would the jersey-core pom be invalid? Why does jenkins need tomcat to build my project?
My pom
<!-- ... -->
<packaging>war</packaging>
<!-- Build -->
<build>
<!-- Filtering -->
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>projects-maven</id>
<name>My Maven Repository</name>
<url>http://path.to.our/repository</url>
</repository>
</repositories>
<dependencies>
<!-- Include Spring 3.1 dependencies and more.. -->
<dependency>
<groupId>our.path</groupId>
<artifactId>core-modules</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.8</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
The dependency tree:
[INFO]
[INFO] --- maven-dependency-plugin:2.4:tree (default-cli) # xx-manager ---
[INFO] our.package.apps:xx-manager:war:1.0-SNAPSHOT
[INFO] +- our.package.base:xx-connect:jar:1.0-SNAPSHOT:compile
[INFO] | +- our.package.base:xx-core:jar:1.1-SNAPSHOT:compile
[INFO] | | +- org.springframework:spring-aspects:jar:3.1.0.RELEASE:compile
[INFO] | | +- org.springframework:spring-orm:jar:3.1.0.RELEASE:compile
[INFO] | | +- org.aspectj:aspectjrt:jar:1.6.12:compile
[INFO] | | +- org.aspectj:aspectjweaver:jar:1.6.12:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | | +- commons-lang:commons-lang:jar:2.3:compile
[INFO] | | +- log4j:log4j:jar:1.2.16:compile
[INFO] | | +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] | | +- org.slf4j:jcl-over-slf4j:jar:1.6.1:runtime
[INFO] | | +- org.slf4j:slf4j-log4j12:jar:1.6.1:runtime
[INFO] | | +- junit:junit:jar:4.10:compile
[INFO] | | | \- org.hamcrest:hamcrest-core:jar:1.1:compile
[INFO] | | +- org.powermock:powermock-module-junit4:jar:1.4.11:compile
[INFO] | | | \- org.powermock:powermock-module-junit4-common:jar:1.4.11:compile
[INFO] | | | +- org.powermock:powermock-core:jar:1.4.11:compile
[INFO] | | | \- org.powermock:powermock-reflect:jar:1.4.11:compile
[INFO] | | | \- org.objenesis:objenesis:jar:1.2:compile
[INFO] | | +- org.powermock:powermock-api-mockito:jar:1.4.11:compile
[INFO] | | | \- org.powermock:powermock-api-support:jar:1.4.11:compile
[INFO] | | +- org.mockito:mockito-all:jar:1.8.4:compile
[INFO] | | +- com.google.guava:guava:jar:10.0.1:compile
[INFO] | | | \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] | | +- com.natpryce:make-it-easy:jar:3.1.0:compile
[INFO] | | | +- org.hamcrest:hamcrest-library:jar:1.2.1:compile
[INFO] | | | \- junit:junit-dep:jar:4.8.1:compile
[INFO] | | +- javax.inject:javax.inject:jar:1:compile
[INFO] | | +- cglib:cglib:jar:2.2:compile
[INFO] | | +- joda-time:joda-time:jar:1.6.2:compile
[INFO] | | +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.6.0:compile
[INFO] | | | +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] | | | +- org.apache.cxf:cxf-api:jar:2.6.0:compile
[INFO] | | | | +- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.2:runtime
[INFO] | | | | | \- org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] | | | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.0.2:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
[INFO] | | | | \- wsdl4j:wsdl4j:jar:1.6.2:compile
[INFO] | | | +- org.apache.cxf:cxf-rt-core:jar:2.6.0:compile
[INFO] | | | +- org.apache.cxf:cxf-rt-bindings-soap:jar:2.6.0:compile
[INFO] | | | | \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.6.0:compile
[INFO] | | | +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.6.0:compile
[INFO] | | | +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.6.0:compile
[INFO] | | | \- org.apache.cxf:cxf-rt-ws-addr:jar:2.6.0:compile
[INFO] | | | \- org.apache.cxf:cxf-rt-ws-policy:jar:2.6.0:compile
[INFO] | | | \- org.apache.neethi:neethi:jar:3.0.2:compile
[INFO] | | +- org.apache.cxf:cxf-rt-transports-http:jar:2.6.0:compile
[INFO] | | \- org.apache.cxf:cxf-rt-transports-local:jar:2.6.0:compile
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.5:compile
[INFO] | | \- org.codehaus.jackson:jackson-core-asl:jar:1.9.5:compile
[INFO] | +- com.sun.jersey:jersey-server:jar:1.12:compile
[INFO] | | +- asm:asm:jar:3.1:compile
[INFO] | | \- com.sun.jersey:jersey-core:jar:1.12:compile
[INFO] | +- com.sun.jersey:jersey-client:jar:1.12:compile
[INFO] | +- com.sun.jersey:jersey-json:jar:1.12:compile
[INFO] | | +- org.codehaus.jettison:jettison:jar:1.1:compile
[INFO] | | | \- stax:stax-api:jar:1.0.1:compile
[INFO] | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
[INFO] | | | \- javax.xml.bind:jaxb-api:jar:2.2.2:compile
[INFO] | | | +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | | | \- javax.activation:activation:jar:1.1:compile
[INFO] | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.2:compile
[INFO] | | \- org.codehaus.jackson:jackson-xc:jar:1.9.2:compile
[INFO] | \- com.sun.jersey.contribs:jersey-multipart:jar:1.6:compile
[INFO] | \- org.jvnet:mimepull:jar:1.4:compile
[INFO] +- our.package.base:xx-security:jar:1.1-SNAPSHOT:compile
[INFO] | +- our.package.base:xx-data-jpa:jar:1.1-SNAPSHOT:compile
[INFO] | | +- org.springframework.data:spring-data-jpa:jar:1.0.3.RELEASE:compile
[INFO] | | +- org.springframework.data:spring-data-commons-core:jar:1.1.0.RELEASE:compile
[INFO] | | +- org.hibernate:hibernate-core:jar:4.1.3.Final:compile
[INFO] | | | +- antlr:antlr:jar:2.7.7:compile
[INFO] | | | +- org.jboss.logging:jboss-logging:jar:3.1.0.GA:compile
[INFO] | | | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile
[INFO] | | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | | +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
[INFO] | | | +- org.javassist:javassist:jar:3.15.0-GA:compile
[INFO] | | | \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile
[INFO] | | +- org.hibernate:hibernate-entitymanager:jar:4.1.3.Final:compile
[INFO] | | +- javax.validation:validation-api:jar:1.0.0.GA:compile
[INFO] | | +- org.hibernate:hibernate-validator:jar:4.3.0.Final:compile
[INFO] | | +- com.mysema.querydsl:querydsl-apt:jar:2.6.0:compile
[INFO] | | | \- com.mysema.querydsl:querydsl-codegen:jar:2.6.0:compile
[INFO] | | | \- com.mysema.codegen:codegen:jar:0.4.11:compile
[INFO] | | +- com.mysema.querydsl:querydsl-jpa:jar:2.6.0:compile
[INFO] | | | \- com.mysema.querydsl:querydsl-core:jar:2.6.0:compile
[INFO] | | | \- com.mysema.commons:mysema-commons-lang:jar:0.2.2:compile
[INFO] | | \- mysql:mysql-connector-java:jar:5.1.11:compile
[INFO] | +- our.package.base:xx-utils:jar:1.1-SNAPSHOT:compile
[INFO] | | \- net.sf.opencsv:opencsv:jar:2.3:compile
[INFO] | +- org.springframework.security:spring-security-core:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-config:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-web:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-acl:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-crypto:jar:3.1.0.RELEASE:compile
[INFO] | \- net.sf.ehcache:ehcache-core:jar:2.4.6:compile
[INFO] +- our.package.base:xx-view-mvc:jar:1.0-SNAPSHOT:compile
[INFO] | +- org.springframework:spring-webmvc:jar:3.1.0.RELEASE:compile
[INFO] | | \- org.springframework:spring-context-support:jar:3.1.0.RELEASE:compile
[INFO] | +- org.springframework:spring-test:jar:3.1.0.RELEASE:compile
[INFO] | +- cglib:cglib-nodep:jar:2.2:compile
[INFO] | +- javax.servlet:jstl:jar:1.2:compile
[INFO] | \- org.freemarker:freemarker:jar:2.3.19:compile
[INFO] +- our.package.company:xx-engine-integration-server:war:1.0-SNAPSHOT:test
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:provided
[INFO] +- org.springframework:spring-test-mvc:jar:1.0.0.BUILD-SNAPSHOT:test
[INFO] +- xmlunit:xmlunit:jar:1.3:test
[INFO] +- org.springframework:spring-aop:jar:3.1.0.RELEASE:compile
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-asm:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-beans:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:3.1.0.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- org.springframework:spring-tx:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:3.1.0.RELEASE:compile
[INFO] +- org.springframework:spring-jdbc:jar:3.1.0.RELEASE:compile
[INFO] \- org.springframework:spring-expression:jar:3.1.0.RELEASE:compile
So it's the usual: dependency conflicts.. as mvn dependency:tree -Dincludes=com.sun.jersey showed. Sigh..
Solution was to updgrade to jersey-spring 1.12.
That's what you get for copying dependencies from tutorials without worrying about versions and then mixing them with your own project.