-
Couldn't load subscription status.
- Fork 20
Adds BND Maven Plugins #201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adds [BND Maven Plugins](https://github.com/bndtools/bnd/blob/master/maven-plugins/README.md) to: - Generate an OSGi bundle descriptor (`MANIFEST.MF`). - Generate a JPMS bundle descriptor. - Check for binary compatibility between releases. The binary compatibility check is implemented by: - Annotating each package with `@Version`. See [Versioning in OSGi](https://bnd.bndtools.org/chapters/170-versioning.html#versions-in-osgi) for details. - Adding the `bnd-baseline-maven-plugin` that checks if the version increment is compatible with the change type (`MICRO`—only annotations added, `MINOR`—only binary compatible changes, `MAJOR`—binary incompatible changes).
|
The generated JPMS descriptor looks like this (the module name is The generated OSGi manifest and import/exports are: |
|
I don't have much experience with OSGi bundles. How does the baseline plugin work? How does the existing plugin compare to those offered by, e.g., org.apache.felix:maven-bundle-plugin? |
The You can assign a version to each package explicitly with a Since
The Maven Bundle Plugin also uses BND under the hood, but often it uses an older version. Maybe this has changed recently. IIRC there are some minor differences in the default configuration: the plugin from Apache Felix exports all packages by default, the one from BND only those explicitly mentioned or annotated with Is |
I think it should be this which matches the |
So it can automatically semantically version the next release, or not really? I am interested what has changed in 1.5.0 until now. Actually, I used a tool to compare 1.4.0 to 1.5.0, and saw that |
I changed the module name in 224769c
From what I see, BND Baseline doesn't really generates any errors, when comparing with japicmp could help with the first release. |
| @Export | ||
| package com.github.packageurl; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should likely publish the module name in the README.md.
Adds BND Maven Plugins to:
MANIFEST.MF).The binary compatibility check is implemented by adding the
bnd-baseline-maven-pluginthat checks if the version increment is compatible with the change type:MICRO—only annotations added to the public APIMINOR—only binary compatible changesMAJOR—binary incompatible changesFixes #96