We recently had an outage of our Nexus instance at work. The file system went corrupt, nexus would not start up properly complaining about a corrupted Orient DB.

The blob store was largely left intact. In hindsight I should have tried to rebuild the OrientDB from the blob store using the Repair - Reconcile component database from blob store task. I found out too late while I already had recovered half of our releases from my local maven repository.

I went down the more difficult route of re-uploading artifacts from my local Maven repo into Nexus. While you can upload single artifacts through Nexus’ web GUI this approach did not scale. Instead, I used the maven-deploy-plugin to upload. Each of our artifacts comes with source accompanied, most expose also tests and test sources. So basically an artifact consists of these files:

  • my-lib-1.0.jar
  • my-lib-1.0.pom
  • my-lib-1.0-sources.jar
  • my-lib-1.0-tests.jar
  • my-lib-1.0-test-sources.jar

All these files need to be uploaded together at once. It took me a little while to understand how to build the commandline for the deploy plugin to accomplish this.

The file parameter takes the main jar. The pomFile paramenter taks the pom file. That’s easy. The other files have to be specified using a more convoluted format. Each file name has to specify its classifier and its type, appended to the separate classifiers and types lists. Finally the files list must specify the full file names. A look at the example will make more sense:

mvn deploy:deploy-file \
    -Dmaven.repo.local=/tmp/maven-repo \
    -Durl=http://nexus.local/repository/releases \
    -DrepositoryId=releases \
    -Dfile=my-lib-1.0.jar \
    -DpomFile=my-lib-1.0.pom \
    -Dclassifiers=sources,tests,test-sources \
    -Dtypes=jar,jar,jar \
    -Dfiles=my-lib-1.0-sources.jar,mylib-1.0-tests.jar,my-lib-1.0-test-sources.jar

You may have noticed that I’m specifying a separate local repository to use during the upload. This is because Maven refuses to upload artifacts from the repo it’s currently operating on. Simply using a throw-away temporary local repo helps minimize the amount of fiddling around with local files.


Fixing the dreaded “problem with defaults entries” in debian

29.09.2018 by Dirk Olmes

At work we host a number of Debian VMs. Most of them are integrated into the central active directory server using the sssd package.

Quite unrelatedly my boss kept nagging me about incoming emails to root that looked like this

Subject: *** SECURITY information for <host> ***

<host> : Sep 29 05:45 …
read more

Chromecasting using a custom Chromium build

23.01.2018 by Dirk Olmes

I’m using Gentoo as my Linux distro of choice. Gentoo compiles everything from source giving you a maximum flexibility - but that’s another story.

At work we’re traditionally an Apple shop - with some exceptions including me. We have an Apple TV device and a big TV screen in …

read more

Setting up a software RAID1

12.07.2017 by Dirk Olmes

I’m helping a friend to set up a machine with Gentoo. This will be a machine to host production applications and it is equipped with 2 identical hard drives. I will set up a software RAID 1. This has been a life saver on a similar machine before where …

read more

Genkernel with virtio drivers

06.04.2017 by Dirk Olmes

A colleague asked me to help analyze problems migrating a Gentoo guest VM from a Xen Server based host to a Proxmox (KVM based) host. The Gentoo VM would not boot beyond the initramfs - it just died saying that the root device could not be found.

Since the VM itself …

read more

SLF4J’s SimpleLogger

05.01.2017 by Dirk Olmes

I use the SLF4J API as the default logging facade in all my projects. SLF4J’s simple logger comes in handy when you don’t need a fully fledged logging framework. The SimpleLogger is despite its name quite configurable - if you know where to find the documentation: it’s in …

read more

Installing pip packages in userspace on OSX

27.10.2016 by Dirk Olmes

I tried to install a python package with pip on my wife’s Macbook Air. There are tons of instructions out on the internet telling you how to install pip and friends on OSX. All of them start by stating that the default install of Python that comes with OSX …

read more

Enabling “Show in System Explorer” in Eclipse on Linux

10.02.2016 by Dirk Olmes

Show in System Explorer

On my Gentoo machine the “Show in System Explorer” menu item did not work on Eclipse. I kept getting this error message:

Execution of 'dbus-send --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"file:/tmp/HelloWorld.java" string:""' failed with return code: 1

A …

read more

Comments for this blog use pelican’s comment system

06.01.2016 by Dirk Olmes

One thing that annoyed me while switching my blog to pelican was the lack of a good comment option. My motivation for self-hosting the blog is to have control over my data and that includes comments! The use of a cloud service like Disqus obviously defeats this purpose.

I sat …

read more

Linux Mint update from 17.2 to 17.3

30.12.2015 by Dirk Olmes

At work we use Linux Mint for some virtual machines that need a desktop environment. Recently, the Linux Mint project released a fairly major update to 17.3. At fist, they did not offer an update for an existing system but promised to release that laster.

Now, a good while …

read more