Maven Builds in Visual Studio Online
This post shows how to use Maven to build projects in Visual Studio Online using the Team Foundation Server plug-in for Eclipse.
Background
As I have been doing a bit of Java coding lately, I am starting to see some of the opportunities to highlight capabilities people likely didn’t know about. For instance, did you know that you can build Java code in Visual Studio Online using Ant or Maven? This post will show you how.
The really nice thing about Visual Studio Online as a remote Git repo is that you get FREE UNLIMITED PRIVATE REPOS. You get 5 free basic user licenses, free work item tracking, and a whole lot more.
Setting up the Team Foundation Server Plug-in for Eclipse
The first thing you’ll need to do is install the plug-in, as shown in the article Install the Team Foundation Server Plug-in for Eclipse. The article is quite detailed with screen shots and is very easy to follow along with. Just install the plug-in, restart Eclipse, and now you’re ready to connect.
Connecting to Visual Studio Online
In Eclipse, click on the Open Perspective item in the menu bar and then choose the Team Foundation Server Exploring perspective.
Next, click the Connect to Team Foundation Server link.
On the Add Existing Team Project page, click Servers, then click Add on the next panel, and finally provide the URL of your Visual Studio Online account.
You are then prompted to sign in.
The next screen asks you to select the projects that you want to work with. I am using the same one from my previous blog post where I showed a simple Git Push demo.
We can now manage work items, source, or even builds!
If we expand the Git Repositories item, we can see the commit that we performed in the last post.
That’s kind of cool, but I want to see something I didn’t expect, like using Maven builds of Java source, built by the hosted build controller in Visual Studio Online. That’s right, I can use the hosted build controller online to build my Java solutions.
Building With Maven in the Hosted Build Controller
This is just so cool to me. Go to the Builds item in the Team Explorer pane and choose New Build Definition. A dialog appears:
I can choose to build manually, upon checkin, or even rolling builds or build on a schedule.
I tell it the source settings where to find the project to build.
We want to copy output to the server.
The next screen is looking for a TFSBuild.proj file. Click the Create button to create one.
ZOMG! Are you kidding me? Maybe this doesn’t shock you, but it does me… the build options are Ant or even Maven. Since I just wrote a blog post on Using the Azure SDK for Java with Eclipse and Maven, we’ll choose Maven.
The next screen asks us for the location of the pom.xml file in the repository.
Our warning is now updated.
Easy enough… click OK, and the dialog to commit the changes appears. We provide a commit message and then choose Commit and Push to make sure our changes are committed to the server.
Once we are done, the plug-in shows that a build is running…
We double-click on the build and inspect the log.
Once it is complete, we see a summary:
We can download the drop as a ZIP file and see the contents, and see that our App.java turned into a .class file.
I have known about the Eclipse integration for a long time, but I honestly haven’t ever seen using continuous integration to build a solution online using Maven. That is just slick.
Summary
In case you didn’t catch what just happened… we make changes to our code locally and commit to our local repository. When we are ready, we push those changes to a remote repository, at which time a continuous integration build kicks off and builds our project according to our Maven pom.xml file. We set up literally zero infrastructure to make that happen, we just push our source to Visual Studio Online. Oh yeah… and Visual Studio Online is free for up to 5 basic users and enables free unlimited private repos.
For More Information
Installing the Team Foundation Server Plug-in for Eclipse
What is Visual Studio Online? – Details how to sign up for the service, free for up to 5 users and unlimited private repos