package dependency org.codehaus.jettison.json cannot be resolved
Andrew Mclaughlin
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)
2Just 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'