[jbosstools-dev] Update manifest.mf file for nested dependencies against juno

Rob Stryker rob.stryker at jboss.com
Mon Apr 16 17:18:22 EDT 2012


Hi All:

I've added a section to this wiki page 
(https://community.jboss.org/wiki/HowToBuildJBossToolsWithMaven3#Tips_and_tricks_for_making_BOTH_PDE_UI_and_headless_Maven_builds_happy) 
describing the issue, but, to summarize it, all compile time 
dependencies must now be explicitly declared in your manifest.mf if you 
expect your plugin to build against juno.

While investigating /JBIDE-11545, we discovered archives.ui built fine 
against indigo, but failed against juno. The reason was that archives.ui 
had a compile-time dependency on org.eclipse.ui.views, but the 
manifest.mf did not declare this dependency. The dependency was resolved 
fine in the past because archives.ui depended on org.eclipse.ui.ide, and 
org.eclipse.ui.ide depended on org.eclipse.ui.views.

It seems tycho will no longer resolve nested dependencies. If you have a 
compile time dependency on a plugin or bundle, you must declare it 
explicitly in your manifest.mf. You can no longer trust that tycho will 
be able to resolve these nested dependencies and provide all available 
plugins at build time.

This will be a huge pain for some people.  I know in my dev style, I 
just try to implement an interface, and, if eclipse does not resolve it, 
then I add it to manifest.mf.  It seems to me that doing so now will 
maybe cause errors and broken builds for devs who do not build locally 
before every commit. If for example you try to implement an interface, 
and eclipse does not complain, it is likely that a plugin you already 
depend on also provides you access to the interface you are seeking. But 
when building in tycho against juno, this plugin won't be found.

So update those manifest.mf files, and if you haven't been building 
locally for every commit, start doing it, at least for compilation.


More information about the jbosstools-dev mailing list