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.5conf),例如:
<settings>
<localRepository>C:MavenRepo</localRepository>
</settings>