Knopflerfish Maven Repositories
Knopflerfish offers a set of different maven2 repositories, each with a specific purpose.
The primary repository is a browsable, custom Knopflerfish 6 based release repository hosted by Knopflerfish.
Define the repository as follows:
<repositories> <repository> <id>Knopflerfish 6 Repository</id> <name>Knopflerfish 6 Releases Repository</name> <url>https://resources.knopflerfish.org/repo/maven2/release/</url> </repository> </repositories>
There is also a former release repository for KF5 releases and older versions.
In addition to the release repositories every Knopflerfish SDK release also includes a complete and self-contained maven 2 repository. These repositories may be used to build against exactly one specific KF version. Please see below for more info.
Source code version first philosophy
Knopflerfish uses a source code version first philosophy. I.e. the bundle version is only changed when the actual source code is changed, not when changing JDK versions, or other build system changes, including a change of major Knopflerfish version.
This means that that a bundle may exist in multiple Knopflerfish releases with the same versions number, but possibly compiled with different JDK versions, resulting in different Java byte code version in the OSGi bundles.
With Knopflerfish 6 the group id of the Knopflerfish artifacts was
changed to also include the Knopflerfish main version. E.g.
org.knopflerfish.kf6.bundle
. This will allow a bundle
to exist under the same name and version, but under a different
group id in the future.
Maven Main Repositories
Knopflerfish Release Repository
The Knopflerfish release repository is browsable and located at:https://resources.knopflerfish.org/repo/maven2/release
This repository contains released Knopflerfish artifacts since KF6. This repository will most likely be mirrored to one or more standard repositories in the near future.
Define the repository as follows:
<repositories> <repository> <id>Knopflerfish 6 Repository</id> <name>Knopflerfish 6 Releases Repository</name> <url>https://resources.knopflerfish.org/repo/maven2/release</url> </repository> </repositories>
For every release that has been merged into the repository there is a dependency file describing the exact contents of that release.
Release | Artifacts |
---|---|
6.1.4 | KF-6.1.4_dependencyManagement.xml |
6.1.3 | KF-6.1.3_dependencyManagement.xml |
6.1.2 | KF-6.1.2_dependencyManagement.xml |
6.1.1 | KF-6.1.1_dependencyManagement.xml |
6.1.0 | KF-6.1.0_dependencyManagement.xml |
6.0.0 | KF-6.0.0_dependencyManagement.xml |
Knopflerfish SDK Release Repositories
Included in every KF release is a maven2 repository containing exactly those bundles / artifacts included in the release. It should be used to build against one specific Knopflerfish version.
The dependency management xml-file show the exact contents of the repository.Knopflerfish Former Maven Release Repository
The release repository for older Knopflerfish releases, KF5 and
older, is browsable and located at:
https://www.knopflerfish.org/maven2
Define the repository as follows:
<repositories> <repository> <id>Knopflerfish Repository</id> <name>Knopflerfish 5 Releases Repository</name> <url>https://www.knopflerfish.org/maven2</url> </repository> </repositories>
This former main repository is also mirrored to bintray and made available in jcenter, making it more conveniently available for maven and gradle users. Currently all artifacts (framework and bundles) are included in one large package called knopflerfish which has an unspecified version. This might change in the future.
Both of these two repositories are populated with all artifacts from all Knopflerfish releases since Knopflerfish release 2.3 until Knopflerfish release 5.2 In OSGi-language that means exactly all the specific bundles that have been included in a Knopflerfish release since KF 2.3.
Snapshot repositories (temporarily turned off)
The KF snapshot build repository is temporarily turned off.Naming conventions
The convention used for group id and artifact is based on the bundle symbolic name. The naming convention is:
- Group Id
- First part of the bundle symbolic name, i.e., everything to the left of the last '.' with the kf${MainVersion} appended at the end (since KF6)
- Artifact Id
- Last part of the bundle symbolic name, i.e. everything after the last '.'
org.knopflerfish.bundle.http
. It will get Group
Id org.knopflerfish.kf${MainVersion}.bundle
and
Artifact Id http
. Older bundles, before KF6, will not
include the MainVersion in the group id.