sbt-osgi
sbt-osgi copied to clipboard
Bundling behavior change between 0.5 and 0.6
So, I upgraded to sbt 0.13 and sbt-osgi 0.6 on my project the other day only to discover that my project code now outputs stuff I didn't expect.
In my project, I take a bunch of project dependencies like scalatra and ice.tar, and convert them into bundles. Sometimes these dependencies have files and other non-class content embedded in them that must be copied to the resulting bundle, like with the bundle my project makes of the scala libs + akka. It used to be I could get these files with the privatePackage setting. For example, in my scala+akka bundle, I made the project depend on scala and akka, and set private packages to "*". This would pull in all the class files that were not exported, but also files like reference.conf in the root of the akka-actors jar, which is necessary for akka to work without a configuration file.
In sbt 0.6, privatePackage now only packages classes found on the classpath, not files. This is entirely an issue with aQute.bndlib being upgraded. I have a fork of this project here that downgrades aQute.bndlib and makes some minor changes to the plugin, and the behavior my project was relying on has returned. Looking at the bndlib documentation, it looks like include_resource is needed to do what I was doing, but there's no such key in sbt-osgi, and I'm not sure how exactly to do what I was doing before (package files found in the classpath into the resulting bundle).
Any idea how to fix this for the new version of bndlib and sbt-osgi?
sbt-osgi
populates the -includeresource
setting (in 0.7.0) or Include-Resource
setting (in 0.6.0) using the "resource" directories configured in SBT, which includes src/main/resources
and target/scala-#.#/sbt-0.#/resource_managed/main
by default. Documentation on how to configure additional resource locations can be found here: http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html
Sorry, I've been doing other things for a couple of months. So, my problem now is to get resources that come from certain jars into managedResources
without unpacking said jars. Any ideas on how to do that?