Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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 for Java-坏主意?_Java_Svn_Tfs_Subclipse - Fatal编程技术网

TFS for Java-坏主意?

TFS for Java-坏主意?,java,svn,tfs,subclipse,Java,Svn,Tfs,Subclipse,我们正在考虑将TFS用于基于.NET的项目,并将其作为任务管理平台。 一些团队只使用Java开发,他们对SVN(Subclipse)非常满意 我们的经理提出了以下问题: 我们是否也应该将Java团队迁移到TFS TFS(仅限源代码控制)是否能很好地处理Java项目 将Java代码库和历史记录从Subclipse迁移到TFS是否很痛苦 目前,出于可维护性的原因,我们希望使用TFS作为唯一的源代码控制平台。我们希望避免让IT人员支持多个系统 谢谢为什么不在.NET项目中使用SVN?有什么原因吗?

我们正在考虑将TFS用于基于.NET的项目,并将其作为任务管理平台。 一些团队只使用Java开发,他们对SVN(Subclipse)非常满意

我们的经理提出了以下问题:

  • 我们是否也应该将Java团队迁移到TFS
  • TFS(仅限源代码控制)是否能很好地处理Java项目
  • 将Java代码库和历史记录从Subclipse迁移到TFS是否很痛苦
目前,出于可维护性的原因,我们希望使用TFS作为唯一的源代码控制平台。我们希望避免让IT人员支持多个系统


谢谢

为什么不在.NET项目中使用SVN?有什么原因吗?Visual Studio中有多个SVN和一个windows shell。

完全公开,我在为TFS编写Java工具的团队中工作,因此将这个答案视为有偏见的:-)

就TFS而言,所有代码都是平等创建的。它只是将文件中的字节签入到版本控制中。与所有SCM系统一样,它不关心文件是用什么语言编写的

Microsoft提供了一个完整的、丰富的(称为TeamExplorer Everywhere)。这提供了从基于Eclipse的IDE到TFS的完整源代码控制、工作项跟踪、构建、sharepoint、报告访问等。它是用100%Java编写的,直接与TFS公开的web服务对话

此外,我们还提供了一个接口,以便您可以在所选操作系统(完全支持Mac、Linux、Solaris、HP-UX、Aix等)上通过命令行与TFS对话

最后,如果您有用Java编写的工具想要与TFS对话,那么他们可以利用它,这是我们用来创建Eclipse集成和跨平台命令行客户端的完整API,但它包含了一些示例和代码片段,可以让您在应用程序中重新发布

当涉及到构建时,您有两个选择。如果您想继续使用当前的构建服务器,那么它可能已经支持与TFS对话(所有流行的开源构建服务器都支持)。除此之外,微软还提供了允许您在Team Foundation构建服务器上运行基于ANT或Maven的构建。如果作为构建的一部分执行JUnit测试,则构建结果(以及任何警告或错误)将与任何JUnit测试数据一起发布回TFS。您还可以在EclipseIDE中创建和管理构建定义,并有一个地方来管理对它们的访问等

因此,对Java的支持水平非常高,微软在这方面表现出了一贯的投资。我们最近发货了一些,我们也已经装运预览版本的团队资源管理器随处可见11与Team Foundation Server 11一起(我们是同一个团队内的公司)。 要从SVN导入历史,这与将历史从任何SCM工具导入TFS(或将TFS导入任何SCM工具)相同。你有两个选择。您可以拍摄快照并在特定点(如发布)进行切换,也可以迁移历史记录。要从SVN迁移历史记录,有一些合作伙伴解决方案可用,包括我看到许多客户都成功使用的一个


希望这能有所帮助。

我非常喜欢@Martin_Woodward的答案,但我认为它太偏颇了,所以我在这里加了2美分。我们公司也处于类似的情况,我认为这一决定取决于具体情况。我可以看到3种不同的情况,每种情况下的决策可能不同:

  • 您主要是在开发.NET解决方案,Java部分集成在.NET解决方案中
  • 您的.NET解决方案是独立于Java解决方案开发的,它们是半个.NET,半个Java
  • 大多数解决方案都是用Java开发的,只有一小部分是用.NET开发的
  • 只有在第一种情况下,我才同意马丁的意见。您将从通用开发环境、源代码控制、构建过程。。。您的Java人员将了解TFS源代码管理的区别(它有名称吗??)。你的未来会变得光明;-)

    如果.NET解决方案和Java解决方案彼此独立,那么使用TFS开发Java解决方案的唯一理由就是运营成本。您应该仔细研究一下,如果只使用TFS操作开发环境所节省的成本将超过将Subversion项目切换到TFS的额外成本

    在最后一种情况下,仅仅为了有一个共同的发展环境而与许多人交换是一个可怕的决定。您可以将Subversion集成到VisualStudio中(使用VisualSVN或其他插件),并且几乎没有任何投资


    包括历史记录在内的源代码迁移通常是一件痛苦的事情,这取决于源代码和目标代码是否工作正常。我们在CSV和SVN方面有良好的经验,但在其他方面没有(良好)经验。但这通常不是问题,您可以使用旧的SVN存储库(只读),只迁移最后一个里程碑。过了一段时间,SVN回购可能就更不用说了……

    在使用TFS开发Java/JVM项目一年之后,我想劝阻任何人不要这样做。虽然TFS可能被认为是.NET开发人员的首选,但您找不到任何具有TFS经验的Java开发人员。Eclipse有一个插件,IntelliJ有一个端口,但我在这两个方面运气都不好,不过我猜这主要是因为TFS不像我使用过的任何其他VCS那样工作

    在我们的团队中,由于TFS及其引起的并发症,我们估计有10-15%的开销。由于TFS决定覆盖文件而损失的工作天数,以及因TFS更新不完整而导致的故障排除天数。我们在6个月内完成了一个分支,因为上一次我们整个团队损失了两天。经常听到这样的说法:“我只是想知道