A blog by Geert van der Cruijsen on Apps, Cloud & ALM

VSTS is tooling for setting up automated pipelines for all kinds of programming languages. I’ve seen more and more non Microsoft technologies being used on VSTS and I came across a couple of questions repeatedly so i thought it was a good idea to write this in a blog post.

The problem is the following: If you want to do a Maven build, Maven will expect some user settings to be present somewhere on your build server. While this is often configured once on the build server it is better to pass it in during build time especially if it contains secrets that you don’t want to have stored in plain text somewhere. So how do we do this?

In the sample we’ll add a connection to Sonatype Nexus (A package management solution, comparable to VSTS Package management) so Maven is capable of downloading packages it needs or it is capable of pushing its build artifacts there. Although this example does only set these settings you can use it for other kinds of settings as well.

So how to implement this?

First we need to add a file to our repo and call it ci-settings.xml. it will contain our user settings with a username and password to connect to Nexus.

This file has a few variables that we are going to replace called nexusUser and nexusPassword. the “REPOSITORY ID” needs to match the id used in the pom.xml file.

In the Maven task we then pass this user settings file to the maven command using the -s option. We can also pass in the values for our parameters in the ci-settings.xml file using -DnexusUser and -DnexusPassword. The full Options would look like something like this.

The actual values of $(Nexus.User) and $(Nexus.Password) are stored in the VSTS variable section where you can also make the password a secret so it’s hidden from logs and from people editing or viewing the build definition

About

This is a personal blog by Geert van der Cruijsen: Geert is a technical expert and architect on mobile and cloud technology based on the Microsoft stack. Geert has implemented enterprise mobility solutions and apps at several companies in the Netherlands and abroad. Geert is also an active co-organizer and speaker for several mobile developer communities.

Geert works as a Lead Consultant at Xpirit in the Netherlands. At Xpirit Geert helps Xpirit's customer with their Mobile strategy and vision from defining the right mobile moments to Xamarin expertise or setting up mobile development factory or mobile center of excellences. Geert is an expert on the full Mobile application development lifecycle.

Geert also works as a Xamarin Partner trainer doing class room Xamarin training for Xamarin University

This blog will focus on everything related to digital mobility from mobile app development tips using Xamarin, Android, iOS & Windows 10 to topics related to Microsoft Azure and ALM.