你如何处理不同的Java IDE和svn?

时间:2008-09-17 09:51:10

标签: java eclipse svn ide collaboration

您如何确保可以将代码签入Eclipse或NetBeans并在其中使用它?

编辑:如果您没有签入与ide相关的文件,则每次签出项目时都必须重新配置buildpath,includes和所有这些内容。我不知道,如果ant(特别是从eclipse创建/导出的ant构建文件)将无缝地与其他ide一起使用。

7 个答案:

答案 0 :(得分:9)

我们实际上现在为SVN中的代码维护一个Netbeans和一个Eclipse项目,没有任何麻烦。 Netbeans文件不会踩到Eclipse文件。我们的项目结构如下:

sample-project   
+ bin
+ launches  
+ lib  
+ logs
+ nbproject  
+ src  
  + java
.classpath
.project
build.xml

最重要的一点似乎是:

  • 禁止任何绝对路径 IDE的项目文件。
  • 设置项目文件以输出 类文件到同一目录。
  • svn:忽略私人 .nbproject中的目录 目录。
  • svn:忽略用于的目录 从IDE和任何其他运行时生成的目录输出的类文件,如上面的日志目录。
  • 让人们始终如一地使用 以便差异得到解决 快。
  • 还维护构建系统 独立于IDE等 CruiseControl的。
  • 使用UTF-8并更正任何编码问题 立即

我们正在开发Fedora 9 32位和64位,Vista和WindowsXP,大约一半的开发人员使用一个IDE或另一个。少数人使用两者并定期来回切换。

答案 1 :(得分:7)

聪明的答案是“通过这样做” - 除非你不使用多个IDE,否则你不知道你是否真的准备好使用多个IDE。诚实。 :)

我总是看到多个平台更加繁琐,因为它们可能使用不同的编码标准(例如,Windows可能默认为ISO-8859-1,Linux为UTF-8) - 对我而言,编码导致了比IDE更多的问题。

更多指示:

  • 您可能想要使用Maven(http://maven.apache.org),让它生成IDE特定文件,并且永远不会将它们提交给源代码控制。
  • 为了确保您正在生成正确的文物,您应该有一个专用服务器来构建您的可交付物(例如cruisecontrol),或者在ant,maven或任何其他工具的帮助下。这些可交付成果是在开发机器之外进行测试的。让人们意识到自己机器外面还有另一个世界的好方法。
  • 禁止在源代码管理中找到的任何IDE特定文件中包含任何特定于计算机的路径。始终按逻辑路径名引用外部库,最好包含其版本(如果不使用maven)

答案 2 :(得分:1)

最好的事情可能是提交任何与IDE相关的文件(例如Eclipse的.project),这样每个人都可以签出项目并按照自己的意愿行事。

话虽这么说,我猜大多数IDE都有自己的配置文件方案,所以也许你可以在没有任何冲突的情况下完成所有这些,但是感觉很麻烦。

答案 3 :(得分:0)

在大多数情况下,我同意seldaek,但我也倾向于说你至少应该提供一个文件,说明依赖是什么,用于编译的Java版本等,以及任何额外的NetBeans / Eclipse开发人员可能需要在他们的IDE中进行编译。

我们目前只使用Eclipse,因此我们将所有Eclipse .classpath .project文件提交给svn,我认为这是更好的解决方案,因为这样每个人都能够重现错误,而不是很容易,而不是对IDE细节感到困惑。

答案 4 :(得分:0)

我的理念是构建应该采用“最小公分母”的方法。源代码控制的内容是构建所需的内容。虽然我只使用Eclipse开发,但我的构建是在命令行使用ant。

关于源代码控制,我只从命令行检入对构建至关重要的文件。没有Eclipse文件。当我设置一个新的开发机器(似乎每年两次)时,需要花费一些精力才能让Eclipse从ant构建文件导入项目,但没什么可怕的。 (理论上,对于其他IDE,这应该是一样的,不行吗?他们必须能够从ant导入吗?)

我还记录了如何设置最小的构建环境。

答案 5 :(得分:0)

我使用maven,然后检查pom&源。
签出项目后,我运行了mvn eclipse:eclipse
我告诉svn忽略生成的.project等。

答案 6 :(得分:0)

这就是我的所作所为:

  1. 仅在源代码管理中维护您的ant构建脚本和关联的类路径。 Classpath可以在ant脚本,属性文件中显式或由ivy管理。
  2. 编写一个ant目标,从ant classpath生成Eclipse .classpath文件
  3. Netbeans将使用您的构建脚本和类路径,只需通过自由格式项目对其进行配置。
  4. 通过这种方式,您可以获得独立于IDE的构建脚本和开发人员:)

    netbeans网站上有关于如何做的博客3.但我现在找不到它。我已经在我的网站上做了一些关于如何进行上述操作的说明 - link text(虽然快速而丑陋,抱歉)

    请注意,如果您使用Ivy(一个好主意)和eclipse,您可能会想要使用eclipse常春藤插件。我已经习惯了,发现它非常多而且不可靠。最好使用2.上面。