Folks,
I'm trying to build a project that uses Abdera, using Maven 2. Here's
the list of dependencies taken from my POM:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-server</artifactId>
<version>0.3.0-incubating-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.abdera</groupId>
<artifactId>abdera-client</artifactId>
<version>0.3.0-incubating-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.0.0rc0</version>
<scope>test</scope>
</dependency>
With these dependencies, my project builds but does not run because
of a class introduced in commons-codec 1.3 but not yet there in
commons-codec 1.2. Dependency on commons-codec is specified in
Abdera's protocol/pom.xml. For some reason, Maven pulls down version
1.2 instead of 1.3, and this even if I specify the exact version in
protocol/pom.xml.
I can work around the issue by declaring an explicit dependency on
1.3 in my project's pom.xml, but I'd like to understand why this is
happening. I have a hunch commons-codec is specified in the
dependencies for one of the other libraries I'm using, but I don't
know how to check, short of looking at all their POMs, recursively.
Besides this, I'd like to know if we can somehow force evey project
that includes Abdera libs as dependencies to download commons-codec
1.3 at least, to prevent other people from falling in the same trap I
fell into.
Ugo