Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What tool is the equivalent of Maven in TFS (or MS-land)?

My company is moving from svn (and open source products) to TFS (and MS products). We've used maven in the past for packaging-up pre-built components into release-ready packages. Is there a tool in TFS or MS-Land as powerful as maven to do this?

I've looked at msbuild, but it seems a little less robust than Maven.

like image 459
fooMonster Avatar asked Nov 19 '08 21:11

fooMonster


1 Answers

In the official TFS/Microsoft stack, MSBuild is the build language. However this is more like Ant (or Nant) rather than Maven - i.e. it is an XML based scripting language designed for software builds rather than using the "convention over configuration" approach of Maven. MSBuild doesn't have the dependency management features that are pretty unique to Maven.

Team Foundation Build is based on MSBuild however it puts down a framework of activities in pre-defined targets (similar to Goals in Maven speak). These activities cover items such as generating the build number, labelling the code, downloading the code, building the defined Solutions(s), Running unit tests, publishing results back to TFS and coping the results of the build to a network share for later deployment. You can easily create a new Team Foundation Build in the Visual Studio UI and then later customize it by overriding some of the many various pre-defined hooks that get called during the default build process by editing the TFSBuild.proj file that was created for your build. In some ways you can think of the TFSBuild.proj file a bit like the Maven POM file - but they are very different.

The build system in Team Foundation Build 2008 is a nice one - albeit very XML driven. However if you are comfortable with Maven configuration then you'll be happy with the XML based configuration of Team Foundation Build. TFS Build provides features such as build scheduling, continuous integration, build retention management etc. You can also easily call existing Ant builds using the free (and open source) build extensions from the company I work for (Teamprise).

Interestingly enough, we are actually currently working on Maven2 integration with Team Foundation Build. We have a Maven2 SCM provider developed that talks to TFS and we are currently working on the Team Build Extension to allow you to call Maven2 builds easily from Team Foundation Build. If you wanted to stick with Maven for your builds and test our Maven integration as it becomes available then drop me a line ([email protected]).

I'd be interested to hear if you are using Maven to build .NET or Java projects (or something else or a combination of everything)

Hope that helps,

Martin.

like image 74
Martin Woodward Avatar answered Oct 19 '22 07:10

Martin Woodward