Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
bnd, the swiss army knife for OSGi. A tool to build bundles.

Merge pull request #843 from pkriens/master

[test] teardown deleted the wrong directory
latest commit ca88b05c0d
Peter Kriens pkriens authored
Failed to load latest commit information.
.gradle-wrapper gradlew: Update to 2.3
aQute.libg [libg] Better close handling in comm link
biz.aQute.bnd.annotation maven artifacts: Generate maven artifacts for projects that opt in
biz.aQute.bnd.embedded-repo embedded-repo: Move to separate project
biz.aQute.bnd.gradle embedded-repo: Move to separate project
biz.aQute.bnd.test packages: Update -buildpath packages attributes
biz.aQute.bnd.testextension .settings: Harmonize eclipse .settings across all projects in the repo
biz.aQute.bnd [bnd] Commandline had no main …
biz.aQute.bndlib.tests [test] teardown deleted the wrong directory
biz.aQute.bndlib [location-error] Support for locations on errors
biz.aQute.configadmin .settings: Harmonize eclipse .settings across all projects in the repo
biz.aQute.demo.subsys [subsys] Test project for subsystems
biz.aQute.jpm [remotelaunch] Hmm
biz.aQute.junit .settings: Harmonize eclipse .settings across all projects in the repo
biz.aQute.launcher launcher test fix: PR #746 introduced a test ordering issue
biz.aQute.remote [remote] Renamed project
biz.aQute.repository.aether [build] Ignoring access restrictions
biz.aQute.repository [jpm] Pickup lost fix from Neil
biz.aQute.resolve [resolve] correct wrong comment
cnf [build] Gradle hung :-( trying out why.
demo .settings: Harmonize eclipse .settings across all projects in the repo
dist .settings: Harmonize eclipse .settings across all projects in the repo
org.osgi.impl.bundle.repoindex.ant [build] Ignoring access restrictions
org.osgi.impl.bundle.repoindex.api [repository] Changed the DS extender from osgi.ds to usage.component
org.osgi.impl.bundle.repoindex.cli packages: Update -buildpath packages attributes
org.osgi.impl.bundle.repoindex.lib SCR analyzer: Fix leakage between processed property elements
org.osgi.impl.bundle.repoindex.test packages: Update -buildpath packages attributes
osgi.r5 .settings: Harmonize eclipse .settings across all projects in the repo
.gitattributes gitattributes: Update for new file types in repo
.gitignore gitignore: Tidy up root .gitignore
.travis.yml travis: Use new travis container based build gradlew: Update to 2.3 gradlew: Update to 2.3 repoindex: Add readme file from old bindex repo
build.gradle maven artifacts: Generate maven artifacts for projects that opt in gradle: Pass bnd gradle plugin classpath to build.gradle
gradlew Install Gradle in the workspace
gradlew.bat Install Gradle in the workspace
settings.gradle gradlew: Update to 2.3


bnd is a swiss army knife for OSGi, it creates manifest headers for you based on analyzing the class code, it verifies your settings, it manages project dependencies, gives you quote of the day, diffs jars, and much more.

The information about bnd can be found at


The git repository contains all code. It contains the following projects:

  • aQute.libg - Library to be statically linked (Conditional-Package)
  • biz.aQute.bnd - A command line utility and ant plugin
  • biz.aQute.bndlib - The core library
  • biz.aQute.bndlib.tests - Tests for the core library
  • biz.aQute.jpm - Just another package manager for Java
  • biz.aQute.junit - Junit tester (runs on Java 1.4)
  • biz.aQute.launcher - Launcher (runs on Java 1.4)
  • biz.aQute.repository - Different repos with OBR
  • biz.aQute.resolve - OBR Resolver
  • cnf - Configuration directory
  • demo - Used in testing
  • dist - Contains the distribution after 'gradle'
  • osgi.r5 - OSGi jars without all dependencies


All code is Apache 2.0 Licensed so you can do what you want with the source code.


Though I am usually pretty good at backward compatibility, there is no guarantee. This is an unpaid project and one of the most annoying thing of work is being backward compatible on the Java API when you know a better way to do it. Properties will be backward compatible if there is any possibility. So be aware, its ok to use this package but do not complain if new releases require some work.

If you're building a tool with a general audience, e.g. bndtools, that includes bnd for a general audience I would appreciate if you got in touch with me so I can keep in touch. I am always interested in ideas.


bndtools is the development environment of bnd. An earlier Eclipse plugin in bnd is no longer available.


Gradle is used to build bnd. The workspace root has a build.gradle file that builds all projects in proper order.

./gradlew - Assembles, tests and releases the projects into dist/bundles
./gradlew :dist:build - Assembles and tests the projects
./gradlew :dist:index - Assembles and releases the projects into dist/bundles

The workspace root includes the gradle wrapper, gradlew, command.

CloudBees Build Status Travis CI Build Status


bnd is continuously built and released on CloudBees.

Built on DEV@cloud


Feedback is always welcome, for general discussions use the list. We also have the list for discussions on the development of bnd.

Bugs and issues should go to

Other feedback or specific functionality send to


Want to hack on bnd? There are instructions to get you started.

They are probably not perfect, please let us know if anything feels wrong or incomplete.

Something went wrong with that request. Please try again.