Closed akarnokd closed 5 years ago
If you are migrating from their osgi
plugin, you probably have a non-Bnd workspace model build and want to use the biz.aQute.bnd.builder
plugin instead. See https://github.com/bndtools/bnd/tree/master/biz.aQute.bnd.gradle#gradle-plugin-for-non-workspace-builds.
The biz.aQute.bnd
plugin is for Bnd workspace model builds where there is a root project and all bundles are in child projects of the root with a cnf
project for the Bnd workspace configuration. The NPE happens when you apply the biz.aQute.bnd
plugin to a root project because it has no parent.
There should probably be a better check for this instead of just NPEing.
But for you, I suspect you just want to use the biz.aQute.bnd.builder
plugin instead.
Thanks. Indeed the builder plugin does not NPE but fails elsewhere:
Cannot set the value of read-only property 'name' for task ':jar' of type org.gradle.api.tasks.bundling.Jar.
If I turn those into key-value pairs like this, I get "Could not find method attributes() for arguments [name, rxjava, Bundle-Vendor, ...".
You will need to look at the documentation for the Bnd plugin to see how to configure it with your instructions. See https://github.com/bndtools/bnd/blob/93bedaaf76f7fd9112dbf9b54d58bfb5741dc246/biz.aQute.bnd.gradle/testresources/builderplugin1/build.gradle#L25-L36 for a test case using the attributes argument.
I opened issue #2688 about creating some migration documentation for Bnd if Gradle 5 will be directing people here as the replacement for their osgi
plugin.
creating some migration documentation
That sounds great! Especially since I don't know what osgi
did as I inherited most of these settings from external contributors.
Gradle 5 deprecates a lot of things including the
osgi
plugin and recommendsbiz.aQute.bnd
instead. When change my setup to use it (v4.1.0), the build fails withNullPointerException
. I don't know if I should also add some extra configuration or this is a bug in either Gradle 5 or bnd. Please advise.