用TFS构建java项目

时间:2010-03-11 14:59:39

标签: tfs tfs2008 tfsbuild

我们的代码库中很小一部分是一些遗留Java代码。我正在尝试添加一个新的构建,它将调用ant来构建这个项目。

第一个问题是TFS不允许您创建不构建.Net解决方案的构建。我通过复制先前的构建文件并添加EndToEndIteration任务来解决这个问题,该任务是构建的入口点。

问题是没有填充通常的构建变量 - $(BuildDirectory),$(SolutionRoot) - 全部为空白。这几乎意味着我不能在没有硬编码路径的情况下调用我的ant任务(我绝对不能这样做)。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您可能需要查看Teamprise Build Extensions,它允许从TFS构建Ant或Maven任务。

答案 1 :(得分:2)

  1. 如果你还没有,创建一个将存储和检索环境变量的任务,你肯定需要他们做任何与java相关的事情(我相信MSBuild extension pack中有一个) / LI>
  2. 创建自定义任务以包装Ant或使用MSBuild Community Tasks集合
  3. 中的脚本任务
  4. 运行它一百万次并随时修复问题,从命令行执行此操作通常更容易,更快,所以在终端内与msbuild.exe交朋友
  5. 你应该能够在环境变量之间传递任何你想要的信息,做出你想做的任何事情。我不打算向你推荐硬编码路径,但是你必须将配置放在某处,这完全取决于你想要改变什么以及你希望如何组织。如果你真的需要,你可以将所有的配置推送到一个数据库中并使用上述链接中的一个SQL任务将其删除,但只记得你添加了相当多的复杂性,这可能是不必要的。

    问问自己:

    • 这个值多久可能发生变化?
    • 如果它发生变化,需要完成的全部任务是什么?

    在某处写下答案并确保团队中的每个人都理解它。在我看来,建立系统“少即是多”。找到最简单的方法,并做到这一点,直到变得不可接受,然后才增加复杂性...... TFS已经足够复杂了。

答案 2 :(得分:1)

我认为你在这里使用错误的工具--TFS永远不会是构建除.NET应用程序之外的任何其他工具的好方法。我认为你最好只使用独立容量的蚂蚁。

答案 3 :(得分:1)

感谢所有答案。

最后,我在构建文件旁边添加了一个空解决方案。这样就可以填充所有变量,我只需要包含一个可以完成我想要的所有变量。