我的公司正在从 svn(和开源产品)转向 TFS(和 MS 产品)。我们过去使用 maven 将预构建的组件打包成可发布的包。TFS 或 MS-Land 中是否有像 maven 一样强大的工具来执行此操作?
我看过 msbuild,但它似乎不如 Maven 强大。
在官方 TFS/Microsoft 堆栈中,MSBuild是构建语言。然而,这更像是Ant(或Nant)而不是Maven - 即它是一种基于 XML 的脚本语言,专为软件构建而设计,而不是使用 Maven 的“约定优于配置”方法。MSBuild 没有 Maven 非常独特的依赖管理功能。
Team Foundation Build 基于 MSBuild,但是它在预定义的目标中建立了一个活动框架(类似于 Maven 中的目标)。这些活动涵盖诸如生成内部版本号、标记代码、下载代码、构建定义的解决方案、运行单元测试、将结果发布回 TFS 以及将构建结果复制到网络共享以供以后部署等项目. 您可以在 Visual Studio UI 中轻松创建新的 Team Foundation Build,然后通过编辑为您创建的 TFSBuild.proj 文件覆盖在默认构建过程中调用的许多各种预定义挂钩中的一些来自定义它。建造。在某些方面,您可以认为 TFSBuild.proj 文件有点像 Maven POM 文件 - 但它们非常不同。
Team Foundation Build 2008 中的构建系统是一个不错的系统——尽管它非常受 XML 驱动。但是,如果您对 Maven 配置感到满意,那么您将对 Team Foundation Build 基于 XML 的配置感到满意。TFS Build 提供诸如构建调度、持续集成、构建保留管理等功能。您还可以使用我工作的公司 ( Teamprise )提供的免费(和开源)构建扩展轻松调用现有的 Ant 构建。
有趣的是,我们目前实际上正在研究 Maven2 与 Team Foundation Build 的集成。我们开发了一个与 TFS 对话的 Maven2 SCM 提供程序,我们目前正在开发 Team Build Extension,以允许您从 Team Foundation Build 轻松调用 Maven2 构建。如果您想在构建中坚持使用 Maven 并在可用时测试我们的 Maven 集成,请给我写信 (martin@teamprise.com)。
我很想知道您是否使用 Maven 来构建 .NET 或 Java 项目(或其他东西或所有东西的组合)
希望有帮助,
马丁。
没有什么像它,MSBuild 不像 Maven,MSBuild 像 Ant。当然,如果 Ivy 可以使 Ant 更“类似 Maven”,那么有人可以创建类似 Ivy 的东西,但要使用 MSBuild 并使其更“类似 Maven”。
曾尝试创建一个名为NMaven的类似 maven 的东西,但它现在是一个死项目。其他尝试是Npanday和Byldan。但我不确定这两个项目的状态。
您将需要查看Team Build,它是 TFS 和MsBuild的一部分,Team Build 使用它来自动化构建过程。将这两者结合在一起,您可以创建一个非常好的构建自动化过程来生成 iso 映像、文档和运行单元测试。