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].
APIis the version of the API implemented without dots : JDBC 4.1 → 41, JDBC 4.2 → 42MAJORis the driver implementation major version numberMINORis the driver implementation minor version numberJREis 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.