Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TFS构建java项目_Tfs_Tfsbuild - Fatal编程技术网

使用TFS构建java项目

使用TFS构建java项目,tfs,tfsbuild,Tfs,Tfsbuild,我们代码库的一小部分是一些遗留Java代码。我正在尝试添加一个新的构建,它将调用ant来构建这个项目 第一个问题是TFS不允许您创建不生成.Net解决方案的生成。我通过复制以前的构建文件并添加EndToEndition任务(该任务是构建的入口点)来解决这个问题 问题是没有填充任何常用的构建变量-$(BuildDirectory),$(SolutionRoot)-全部为空。这几乎意味着,如果不对路径进行硬编码,我就无法调用我的ant任务(这是我绝对无法做到的) 有什么想法吗?我认为您在这里使用了错

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

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

问题是没有填充任何常用的构建变量-$(BuildDirectory),$(SolutionRoot)-全部为空。这几乎意味着,如果不对路径进行硬编码,我就无法调用我的ant任务(这是我绝对无法做到的)


有什么想法吗?

我认为您在这里使用了错误的工具-TFS对于构建除.NET应用程序之外的任何应用程序都不是一个好的解决方案。我认为您最好只在独立的功能中使用ant。

我认为您在这里使用了错误的工具-TFS对于构建除.NET应用程序之外的任何应用程序都不是一个好的解决方案。我认为你最好是单独使用ant

  • 如果您还没有,那么创建一个任务来存储和检索环境变量,您肯定需要它们执行与java相关的任何操作(我相信在
  • 创建自定义任务以包装Ant或使用集合中的脚本任务
  • 运行它一百万次并在运行过程中修复问题,从命令行执行此操作通常更容易、更快,因此请与终端中的msbuild.exe交朋友
  • 您应该能够在环境变量之间传递您想要的任何信息,使您想要做的一切成为可能。我不打算向您推荐硬编码路径,但您必须将配置放在某个地方,这是您想要更改的内容和组织方式之间的权衡。如果您真的需要,您可以将所有配置推送到一个数据库中,并使用上面链接中的一个SQL任务将其消化,但请记住,您添加了大量可能不必要的复杂性

    问问自己:

    • 该值可能多久更改一次
    • 如果发生变化,需要完成的全部任务是什么
    把答案写在某个地方,确保团队中的每个人都理解它。在我看来,在构建系统时,“少即是多”。找到最简单的方法去做,直到它变得不可接受,然后再增加复杂性。。。TFS已经够复杂了

  • 如果您还没有,那么创建一个任务来存储和检索环境变量,您肯定需要它们执行与java相关的任何操作(我相信在
  • 创建自定义任务以包装Ant或使用集合中的脚本任务
  • 运行它一百万次并在运行过程中修复问题,从命令行执行此操作通常更容易、更快,因此请与终端中的msbuild.exe交朋友
  • 您应该能够在环境变量之间传递您想要的任何信息,使您想要做的一切成为可能。我不打算向您推荐硬编码路径,但您必须将配置放在某个地方,这是您想要更改的内容和组织方式之间的权衡。如果您真的需要,您可以将所有配置推送到一个数据库中,并使用上面链接中的一个SQL任务将其消化,但请记住,您添加了大量可能不必要的复杂性

    问问自己:

    • 该值可能多久更改一次
    • 如果发生变化,需要完成的全部任务是什么

    把答案写在某个地方,确保团队中的每个人都理解它。在我看来,在构建系统时,“少即是多”。找到最简单的方法去做,直到它变得不可接受,然后再增加复杂性。。。TFS已经够复杂了。

    您可能想看看哪些允许从TFS构建Ant或Maven任务。

    您可能想看看哪些允许从TFS构建Ant或Maven任务。

    谢谢所有的答案


    最后,我求助于在构建文件旁边包含一个空的解决方案。通过这种方式,所有变量都被填充,我只是简单地包含了一个变量,它完成了我想要的一切。

    感谢所有的答案


    最后,我求助于在构建文件旁边包含一个空的解决方案。通过这种方式,所有变量都被填充,我只是简单地加入了一个变量,它完成了我想要的一切。

    @Andrew:Never是一个很长很长的时间:)有一些计划为其他平台提供TFS构建服务,如Teamprise build Extensions(2008)(2010)。更多关于TFS 2010中跨平台计划的信息:@Andrew:Never是一个很长很长的时间:)有一些计划为其他平台提供TFS构建服务,如Teamprise构建扩展(2008)(2010)。更多关于TFS 2010中跨平台计划的信息:Teamprise构建扩展完全符合提问者的要求。您甚至可以在将TFSBuild.proj文件指向Ant build.xml文件或Maven pom后,使用Teamprise客户端为您创建TFSBuild.proj文件。在将TFSBuild.proj文件指向Ant build.xml文件或Maven pom后,甚至可以使用Teamprise客户端为您创建TFSBuild.proj文件。