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:
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.
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
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
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 …
Chromecasting using a custom Chromium build
Setting up a software RAID1
Genkernel with virtio drivers
Installing pip packages in userspace on OSX
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 …
Enabling “Show in System Explorer” in Eclipse on Linux
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
Linux Mint update from 17.2 to 17.3
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