You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Sievers, Jan" <ja...@sap.com> on 2013/04/19 15:49:04 UTC
maven 3.1.0-alpha-1 adoption feedback
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?
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
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.
To avoid tight coupling between maven and tycho in the future, what would be the official APIs to use for aether and sisu?
Regards,
Jan
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=406056
[2] http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.maven.plugin-testing%22%20AND%20a%3A%22maven-plugin-testing-harness%22
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: maven 3.1.0-alpha-1 adoption feedback
Posted by Hervé BOUTEMY <he...@free.fr>.
Le vendredi 19 avril 2013 15:17:44 Stuart McCulloch a écrit :
> > 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.
if you detect the Aether version by detecting a class of aether-api like I did
[1], one not so obvious point is that aether-api (both from Sonatype and from
Eclipse) must be marked optional
Regards,
Hervé
[1] http://maven.apache.org/shared/maven-reporting-
exec/xref/org/apache/maven/reporting/exec/DefaultMavenPluginManagerHelper.html#102
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: maven 3.1.0-alpha-1 adoption feedback
Posted by Stuart McCulloch <mc...@gmail.com>.
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 http://jira.codehaus.org/browse/MNG 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] https://bugs.eclipse.org/bugs/show_bug.cgi?id=406056
> [2] http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.maven.plugin-testing%22%20AND%20a%3A%22maven-plugin-testing-harness%22
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org