TFS (Team Foundation Server) 2013集成Maven构建
Team Foundation Server原生就支持跨平台的构建,包括Ant和Maven两种构建方式。通过配置构建服务器,连接TFS源代码库,可以实现持续集成构建,自动检测代码库健康状况,进而实现自动测试和部署。本文以Maven为例,介绍如何在TFS 2013的基础上实现服务器构建。
1. 前提条件
-Team Foundation Server 2013
本文以Team Foundation Server 2013为例,实际上自TFS 2010开始就支持跨平台的服务器构建。在执行后面的操作前,首先需要用户自行安装TFS 2013服务器。安装服务器的过程比较简单,可以参考MSDN的官方文档 https://msdn.microsoft.com/zh-cn/library/vstudio/dd631902.aspx
- Java Development Kit (JDK) 1.8
目前JDK的最新版本为1.8,你可以从这里下载http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Maven 3.2.5
目前最新的版本为Maven 3.3.3,下载地址为:https://maven.apache.org/download.cgi?Preferred=ftp://mirror.reverse.net/pub/apache/
但是在试验过程中,发现最新的版本(3.3.3)在构建Maven项目时间,总提示“-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.”的错误,应该是这个版本的缺陷,只好降级到版本3.2.5.
这个错误在MSDN的论坛中有人反映过,但是没有找到有效的方法,降级是不得已而为之。
- Eclipse LUNA
Eclipse是TFS跨平台开发的重要工具,通过集成Team Explorer Everywhere,TFS在Eclipse中的功能与Visual Studio相差无几。
Eclipse的下载路径是http://www.eclipse.org/downloads/
并参考MSDN的文档为Eclipse安装TFS插件Team Explorer Everywhere https://msdn.microsoft.com/en-us/library/vstudio/hh301122.aspx
2. 配置构建服务器
TFS的构建服务器可以与TFS应用层服务器部署在同一台机器上,可以独立安装配置,再连接到TFS的团队项目集合中,为TFS的团项目提供构建服务。这里以在同一台上为例。
2.1 在构建服务器上安装TFS构建扩展(TFS Build Extentions)
TFS Build Extentions为TFS提供了专门用户Maven和Ant构建的模板,用户可以从这里下载微软免费提供的Microsoft Visual Studio Team Foundation Server 2013 Build Extensions:
https://visualstudiogallery.msdn.microsoft.com/2011f516-15a7-4f9a-8b86-1e0894a75739
2.2 配置JDK和Maven环境
- 将JDK和Maven解压缩到计算机的任意文件夹中
- 配置服务器环境变量:JAVA_HOME, M2_HOME
- 将JDK和Maven的bin路径添加到环境变量的”path”中

- 通过运行命令“java –version”和“mvn -v”验证Maven和Java环境配置是否正确

如果内网环境部署了Maven服务器(例如Sonatype nexus http://www.sonatype.com/nexus) ,可以修改Maven的配置文件,设置镜像地址,可以提高依赖库的下载速度,同时解决构建服务器不能连接互联网的问题。(如下图)

3. 使用Eclipse创建示例项目,并上传到TFS代码库
使用Eclipse创建Maven项目前,如果需要使用本地规范的Maven配置,还需要设置Eclipse的参数,如下图(在可以连接互联网的环境中,可以忽略这一步):






Maven示例项目创建成功
4. 配置构建定义并验证构建环境
将上一步创建的Java项目上传到TFS服务器。并使用TEE配置构建定义。





运行构建定义


构建成功!
http://www.cnblogs.com/danzhang 张洪君
[补充常见问题 2015.6.23]
下面补充一下TFS集成Maven实现服务器构建过程中的常见问题:
1. 在代码中清除依赖的Jar包
必须将代码中依赖的Jar包文件清除,服务器在构建过程中会自动下载/复制依赖的Jar包文件到项目中(例如lib文件夹);否则在创建war包的过程中出现“拒绝访问”的错误。
2. 尽量将构建服务器连接到互联网
Maven构建服务器可以自动下载依赖的Jar包;如果构建服务器不能连接互联网,应该将依赖的Jar包文件提前下载到Maven服务器的本地库中(Repository),并配置Maven的配置文件settings.xml(路径为C:\apache-maven-3.2.5\conf),例如:
<settings>
<localRepository>C:\MavenRepo</localRepository>
</settings>
TFS (Team Foundation Server) 2013集成Maven构建的更多相关文章
- TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)
工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看看?"我也一直很好奇别的公司T ...
- Team Foundation Server 2013 KEY(密钥)
isual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥): ...
- Visual Studio Team Foundation Server 2013
下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=42308 Microsoft Visual Studio Team Foun ...
- TFS(Team Foundation Server)介绍和入门
在本文的两个部分中,我将介绍Team Foundation Server的一些核心特征,重点介绍在本产品的日常应用中是怎样将这些特性结合在一起使用的. 作为一名软件开发者,在我的职业生涯中,我常常会用 ...
- TFS(Team Foundation Server)简介和新手入门
在两部分的文章.我会介绍Team Foundation Server一些核心功能,着重于产品的日常应用是如何将这些功能结合使用. 作为一个软件开发.在我的职业生涯,.我常常用于支持软件开发过程中大量的 ...
- Team Foundation Server 2013 with Update 3 Install LOG
[Info @10:14:58.155] ====================================================================[Info @ ...
- TFS文件编码检查机制和修改(Team Foundation Server 2013)
TFS的版本控制系统会自动按照下面的标准检测代码文件的编码格式: 1. 首先,如果代码文件包含了BOM部分,则使用BOM中制定的编码格式打开文档 什么是BOM (Byte order mark)? h ...
- TFS(Team Foundation Server) 权限设置记录
环境: TFS2012 + win7 1.安装好TFS 2.创建系统用户组: TFSAdmins.TFSDevs.TFSUsers 分别为TFS管理人员组.TFS开发人员组.TFS普通用户组. 如下图 ...
- Team Foundation Server 2013 Update 3 下载激活
http://www.microsoft.com/zh-cn/download/details.aspx?id=43728 支持的操作系统 Windows 7 Service Pack 1, Wind ...
随机推荐
- DbUtils: JDBC Utility Component Examples
DbUtils: JDBC Utility Component Examples \JDBCCollector\jdbc\src\main\java\com\ai\toptea\collection\ ...
- elasticsearch 官方入门 及 API
https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html 入门地址 ElasticSea ...
- pythonNet day02
网络收发缓冲区 1.协调读写速度.减少和磁盘交互 2.recv和send实际上是从缓冲区获取内容,和向缓冲区发送内容 recv()特性 1.如果连接断开,recv会立即结束阻塞返回空字符串 2.当接收 ...
- JavaScript Promise的学习笔记
首先声明:本人今天刚接触Promise,通过一个例子,希望能更好的来理解,如果有不对的地方,还望指正 Promise是专门为解决 js中回调而引起的各种问题,而产生的. 在异步编程中,我们经常使用回调 ...
- pthread_create用法(转)
在转载别人文章之前,说一下 pthread_create(); 创建线程返回值. 正常情况下,创建成功则返回 0 : 如果创建失败 通常返回常见的 错误返回代码为: EAGAIN #define ...
- 【python 】Requests 库学习笔记
概览 实例引入 import requests response = requests.get('https://www.baidu.com/') print(type(response)) prin ...
- onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
个ListActivity,长按不同的item弹出的菜单不一样 参照
- 实例: Java代码操作oracle数据库(JDBC+sevrlet+jsp+html)
1, 注册页面 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.or ...
- C语言字符编码处理
一.字符编码识别 1.简介 uchardet是一个开源的用于文本编码检测的C语言库,其功能模块是用C++实现的,通过一定数量的字符样本独立的分析出文本的编码,当前已经支持UTF-8/GB13080/B ...
- genymotion的安装
1.安装virtualBox google的模拟器是运行在qemu上面的. genymotion这个模拟器运行在virtualBox上面.