[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