[fedora-java] Help with build issue

Mikolaj Izdebski mizdebsk at redhat.com
Tue Feb 12 09:29:30 UTC 2013


> I'm trying to build my apache-rat package on Fedora 18 but the tests
> are
> failing with the backtrace below.  So it appears to me that the
> problem
> is likely to be that
> com.google.inject.internal.ProviderMethodsModule.getProviderMethods
> from
> google-guice is not properly specifying its dependence on
> aopalliance.jar from the aopalliance package.  Is that the case?  If
> so
> (or not), how to fix?  Thanks!

This is a known bug in Fedora Maven. It is caused by incompatible
version of Guice (we use different version of Guice than upstream).
Basically our Guice depends on AOP Alliance, while Guice used by
upstream Maven does not.

I'll take care of the bug, but for now you can try adding aopalliance
to test dependencies or skipping tests entirely. For those who wonder
how is that happening, here's a bit more detailed explanation:

Internally Maven uses custom class loaders (from Plexus Classworlds)
to manage so called "class realms". The main class realm is called
"plexus.core" and its contents are defined in /etc/maven/m2.conf
(AOP Alliance is part of plexus.core in Fedora). Other realms are
created on the fly, often by importing some classes from plexus.core.

When importing Guice from one realm to another Maven doesn't import
AOP Alliance because it doesn't know about it. In Fedora we need to
patch Maven to import relevant classes of AOP Alliance when Guice
is imported.

--
Mikolaj Izdebski


More information about the java-devel mailing list