TFS (Team Foundation Server) 2013集成Maven构建

时间:2023-03-08 17:29:26
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的论坛中有人反映过,但是没有找到有效的方法,降级是不得已而为之。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/47fdba6a-d6fc-4bed-9733-a68b577cd1a5/dmavenmultimoduleprojectdirectory-system-propery-is-not-set?forum=tee

- 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”中

TFS (Team Foundation Server) 2013集成Maven构建

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

TFS (Team Foundation Server) 2013集成Maven构建

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

TFS (Team Foundation Server) 2013集成Maven构建

3. 使用Eclipse创建示例项目,并上传到TFS代码库

使用Eclipse创建Maven项目前,如果需要使用本地规范的Maven配置,还需要设置Eclipse的参数,如下图(在可以连接互联网的环境中,可以忽略这一步):

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

Maven示例项目创建成功

4. 配置构建定义并验证构建环境

将上一步创建的Java项目上传到TFS服务器。并使用TEE配置构建定义。

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

运行构建定义

TFS (Team Foundation Server) 2013集成Maven构建

TFS (Team Foundation Server) 2013集成Maven构建

构建成功!

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>