Maven repository distributing Openlink Virtuoso opensource Java libraries.
Module | Latest version |
---|---|
virtuoso-jdbc | 43.3.119 |
You can browse available packages and versions through the Github web UI section or the raw repository view
Add the repository to your pom.xml
:
<repository>
<id>virtuoso</id>
<name>Openlink Virtuoso drivers packages</name>
<url>https://maven.pkg.github.com/jeremiehuchet/virtuoso-drivers</url>
</repository>
And the dependency:
<dependency>
<groupId>unofficial.com.openlink</groupId>
<artifactId>virtuoso-jdbc</artifactId>
<version>43.3.119</version>
</dependency>
Add the repository to your build.gradle
:
repositories {
maven {
url = uri("https://maven.pkg.github.com/jeremiehuchet/virtuoso-drivers")
}
}
And the dependency:
dependencies {
implementation "unofficial.com.openlink:virtuoso-jdbc:43.3.119"
}
I used a convention inspired by the Postgresql JDBC driver : API.MAJOR.MINOR[.JRE]
.
API
is the version of the API implemented without dots : JDBC 4.1 → 41, JDBC 4.2 → 42MAJOR
is the driver implementation major version numberMINOR
is the driver implementation minor version numberJRE
is optional and specified for old Java runtimes
For instance, 41.3.119.jre7
is:
- a JDBC 4.1 driver
- version 3.119
- compatible with JRE 7+
And 43.3.119
is the same but for latest JRE (9+).
I opened an issue some time ago to get virtuoso JDBC driver published to maven central (virtuoso-opensource#249).
So... no, it's not yet into maven central 😢
But it's easier to use in maven projects 🎉
Currently, the original driver source contains C preprocessor instructions (see for instance virtuoso.jdbc.Driver). It makes the build toolchain somewhat complex for java focused developers used to maven conventions.
I used (mostly for fun) nix package manager to set up the required tools with the right version. After installing nix, you should be able to run nix-build virtuoso-java-sources.nix
to generate an output with the Virtuoso JDBC drivers rouces files.
Finally, I rearranged files to suit maven standard project layout, but I didn't modify them. This way I was able to publish libraries easily to a maven repository.
Take a look a main.yml github action. You should just have to run nix-shell --run "mvn package"
to build the libraries.