在 TFS (或 MS-land) 中,与 Maven 等效的工具是什么?

11

我的公司正在从svn和开源产品转换到TFS和MS产品。我们以前使用maven将预构建组件打包成发布准备好的软件包。在TFS或MS环境中,是否有像maven一样强大的工具可用于此操作?

我已经看了msbuild,但它似乎没有Maven那么强大。


TFS现在支持Maven包管理:https://stackoverflow.com/a/44119042/7862382 - Paul T. Barham
3个回答

7
在官方TFS/Microsoft堆栈中,MSBuild是构建语言。但这更像Ant(或Nant),而不是Maven——也就是说,它是一种基于XML的脚本语言,专门设计用于软件构建,而不是使用Maven的“约定优于配置”方法。MSBuild没有Maven相当独特的依赖关系管理功能。
Team Foundation Build基于MSBuild,但它在预定义的目标中提供了一系列的活动框架(类似于Maven中的Goals)。这些活动包括生成构建号、标记代码、下载代码、构建定义的解决方案、运行单元测试、将结果发布回TFS以及将构建结果复制到网络共享中以供后续部署。您可以轻松地在Visual Studio UI中创建一个新的Team Foundation Build,然后通过编辑为您的构建创建的TFSBuild.proj文件,覆盖一些默认构建过程中调用的各种预定义钩子来自定义它。从某些方面来看,您可以将TFSBuild.proj文件视为类似于Maven POM文件,但它们是非常不同的。
Team Foundation Build 2008中的构建系统很好 - 尽管它非常XML驱动。但是,如果您熟悉Maven配置,则会喜欢基于XML的Team Foundation Build配置。 TFS Build提供构建调度、持续集成、构建保留管理等功能。您还可以使用我所在公司的免费(和开源的)build extensions轻松调用现有的Ant构建(Teamprise)。
有趣的是,我们目前正在与Team Foundation Build集成Maven2。我们开发了一个Maven2 SCM提供程序,可以与TFS通信,并且我们目前正在开发Team Build扩展,以便您可以轻松地从Team Foundation Build调用Maven2构建。如果您想继续使用Maven进行构建并在可用时测试我们的Maven集成,请给我写信(martin@teamprise.com)。
我很想听听您是否正在使用Maven构建.NET或Java项目(或其他东西或一切的组合)。
希望这有所帮助,
马丁。

你们的Maven集成现在是否已经公开可用,还是已经被放弃了? - Janus Troelsen

4

没有什么可以与它相比,MSBuild不像Maven,MSBuild像Ant。当然,如果Ivy可以使Ant更像“Maven”,那么有人可以创建类似于Ivy但适用于MSBuild并使其更像“Maven”的东西。

曾经尝试创建类似于Maven的东西,叫做NMaven,但现在已经是一个死项目了。其他尝试包括NPandayByldan。但我不确定这两个项目的状态。


1
看起来 NPanday(http://www.codeplex.com/npanday)最近已经发布了1.0版本,也许你应该试试。 - Luxspes
NPanday在2015年2月已经被停用:http://incubator.apache.org/projects/index.html#npanday - Janus Troelsen

3

您需要查看Team Build,这是TFS的一部分,以及MsBuild,Team Build使用它来自动化构建过程。两者结合起来,您可以创建一个相当不错的构建自动化流程,例如生成ISO镜像、文档和运行单元测试。


这与Paket相比如何? - Janus Troelsen
@JanusTroelsen 你是在说 HashiCorp 的 Paket 吗? - Dale Ragan
1
啊,你可以在构建过程中使用Paket来管理依赖项。 - Dale Ragan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接