John Mercier

[A software developer interested in java, groovy, and nixos]

After a bot upgraded jbake I was unable to run it on my system. The cause was due to a change in the jbakes script detected the java executable. With some help from the nix community I was able to fix it.

reckon is a gradle plugin which provides automatic semantic versioning to a project. It uses git tags to determine what the current version should be for any given build operation. It also enforces that versioning follows semver.

Typically build libraries with ant tasks are carefully managed in ~/.ant/lib or $ANT_HOME/lib by the developer. Every project using ant will have those tasks on the classpath every time ant is invoked. This can be problematic to developers working on multiple ant projects. It can be especially problematic for CI servers building ant projects. Projects cannot select different versions of build tasks making the build none deterministic and dependent on the environment the build is executed in. Wouldn’t it be nice if build libraries could be added to an ant project dynamically within the build.xml file? This can be made possible by downloading the libraries from a repository like maven central and adding the tasks in the project’s build file.

The ant build system does not come with dependency management. Developers either need to manage dependencies manually or use ivy. Dependency management is not the easiest task to perform manually and it distracts developers from writing their projects. Ivy is capable of downloading dependencies from maven central for use in the project. Ivy will be used to provide build libraries to the ant project so tasks may be added but first ivy tasks must be added to the project.

In a previous post JBake was added to nixos. Now it is time to convert this blog to JBake. As with any user blog hosted by github the content needs to be posted to a git repository for the user. My repository is I’m using a second repository for the sources of the site.

There are a few tools I want to use. Gradle to build the sources and publish the blog to github. Travis CI to run the Gradle tasks anytime the sources change.

  1. Convert posts from jekyll Markdown format to JBake asciidoc format

  2. Setup Gradle to build and publish the blog

  3. Setup travis-ci to update the blog when sources change

To get started I had to setup gradle and JBake in a workflow for converting posts and viewing the site.

JBake is a static site/blog generator. I have been using jekyll for this blog but I would like to try something new. My main operating system is NixOS which does not have a package to install JBake. It will need to be added. I have already updated visualvm and notion for NixOS but adding a new package is something I haven’t tried yet.

This post will walk through the process of developing the JBake nix expression for the nixpkgs repository.


obnam is a backup program I have used used in the past to backup my gentoo system. Now that I am using nixos I would like to setup backups for a number of reasons:

After installing nixos I had some issues with the linux kernel and possibly kde. At boot I would get errors like this.

Older post are available in the archive

2014 - 2018 | Mixed with Foundation v5.5.1 | Baked with JBake v2.6.1