maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stuart McCulloch <>
Subject Re: maven 3.1.0-alpha-1 adoption feedback
Date Fri, 19 Apr 2013 14:17:44 GMT
On 19 Apr 2013, at 14:49, Sievers, Jan wrote:

> Hi,
> I tried adapting tycho to maven 3.1.0-alpha-1, see [1].
> One thing I noticed is that maven now brings asm-3.3.1 as part of its core classloader.
> This breaks a build plugin in tycho (binary mismach errors at runtime) which happens
to use asm-4.0.
> Am I right that shipping asm with maven core means potentially breaking any maven plugin
directly or indirectly using a different version of asm?

This used to be shaded into the container jar, but is not shaded at the moment - the ASM packages
are not exposed from the core realm so this shouldn't break plugins unless they hook into
the core via another mechanism.

I'll need to look more at how Tycho hooks into Maven to see how it's getting access to these
packages. It is on my list to update the container to ASM4, I'm not sure about re-introducing
shading as that causes problems elsewhere (for example makes debugging harder, has been known
to confuse downstream repackagers).

> The other change which breaks tycho is aether moved to the org.eclipse package namespace.
> Looks like for aether users it's a simple "organize imports"; no API changes other than
package rename, right?
> As there seems to be no compatibility layer for aether, this means the new tycho version
will have to require at least maven 3.1

The approach taken by Hervé in the maven-site-plugin (actually in the shared maven-report-exec
component) and the maven-dependency-plugin code was to abstract out their particular use of
Aether into two class files (one for the old API, one for the new API), build against both
libraries, and then use reflection to select the appropriate class file at runtime.

> We use maven-plugin-testing-harness 2.1 [2] for some of our tests which seems to no longer
work with maven 3.1.0-alpha-1.

Could you raise an issue on with more details and attach
the exception/log?

> To avoid tight coupling between maven and tycho in the future, what would be the official
APIs to use for aether and sisu?

Wrt. Sisu the only container-related packages exposed from the core realm (apart from the
old Plexus API) is the JSR330 API

AFAIK the new Aether API is stable going forwards, but where possible it's better to rely
on the Maven repository/artifact API (or on Maven shared components).

The core realm also now exposes SLF4J, but I don't believe Tycho uses that at the moment.

> Regards,
> Jan
> [1] 
> [2]

> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message