Can anyone explain me what does the below error means? And how can I fix it?
The package dependency org.codehaus.jettison.json with the version greater than or equal to 1.3.0 required by bundle com.hosyt.astyanax.astyanax_1.0.13 cannot be resolved.
I am working with Maven and using Astyanax client with Cassandra.
Below is my pom.xml file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="" xmlns:xsi=""
xsi:schemaLocation=" ">
<!-- 1. Parent POM information Most of shared sections/configurations between
projects are inherited from parent pom. The shared sections are distributionManagement,
repositories, pluginRepositories, PluginManagement, Plugins 2. Switch this
to the project-specific aggregator pom -->
<parent>
<groupId>com.host.raptor</groupId>
<artifactId>RaptorParent</artifactId>
<version>1.6.0-RELEASE</version>
</parent>
<!-- POM Information about the Project -->
<modelVersion>4.0.0</modelVersion>
<groupId>com.host.bulls.integ</groupId>
<artifactId>BullsDAO</artifactId>
<version>2.0.1-SNAPSHOT</version>
<!-- Packing Type is bundle for OSGI Library Bundle -->
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>com.host.astyanax</groupId>
<artifactId>astyanax</artifactId>
<version>1.0.13</version>
<exclusions>
<exclusion>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.host.bulls.shared</groupId>
<artifactId>BullsShared</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
<!-- Build Configration -->
<build>
<plugins>
<!-- Apache Felix Bundle Plugin - For Generation of Manifest after Compile
phase -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<!-- Configuration for generating the Manifest.mf -->
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<!-- Configuration for generating the Manifest.mf -->
<configuration>
<manifestLocation>src/main/resources/META-INF</manifestLocation>
<!-- Manifest Headers which need to customized during manifest generation -->
<instructions>
<Bundle-SymbolicName>com.host.bulls.integ.BullsDAO</Bundle-SymbolicName>
<!-- <Export-Package></Export-Package> -->
<Import-Package>*,
org.springframework.beans.factory;version="[3.0.5.RELEASE,4.0.0)",
org.springframework.beans.factory.config;version="[3.0.5.RELEASE,4.0.0)",
net.sf.cglib.core;version="[2.1.3,3.0.0)",
net.sf.cglib.proxy;version="[2.1.3,3.0.0)",
net.sf.cglib.reflect;version="[2.1.3,3.0.0)"
</Import-Package>
<!-- <X-Raptor-Pipeline-Handler></X-Raptor-Pipeline-Handler> -->
<!-- <X-Raptor-Initializer></X-Raptor-Initializer> -->
</instructions>
</configuration>
</plugin>
</plugins>
</build>
<!-- Configuration of repositories for dependency resolution -->
<repositories>
<!-- Raptor Bundles Repository -->
<!-- This is needed to locate the Raptor Parent project. Other repositories
come from the parent. -->
<repository>
<id>raptor.releases</id>
<url>
<releases />
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>releases</id>
<url>
<releases>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>thirdparty</id>
<url>
<releases>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>host</id>
<url>
<releases />
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>central</id>
<name>Maven Central Repo</name>
<url>
</repository>
<repository>
<id>riptano</id>
<name>riptano</name>
<url>
</repository>
</repositories>
</project>
3 Answers
It means com.hosyt.astyanax.astyanax_1.0.13 depends on org.codehaus.jettison:jettison version 1.3.0 or greater but it's not found.Your pom includes version 1.3 but Maven determines 1.3 is older than 1.3.0. Try changing it into
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.1</version>
</dependency>
(Assuming your project is compatible with 1.3.1)
Just a guess (since I cannot check this because of the non-public artifacts): Move the jettison dependency before the astyanax dependency - because it seems to work for the cassandra-all dependency which you also exclude. To me it looks like Maven tries to resolve the transitive astyanax dependencies before knowing the later declaration.
gradle dependency for Android
implementation ('com.thoughtworks.xstream:xstream:1.4.9') {
exclude group: 'xmlpull', module: 'xmlpull'
}
implementation 'com.github.codehaus:jettison:jettison-1.3.7'