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

8

如何确保您可以将代码检出到 Eclipse 或 NetBeans 中,并在那里使用它?

编辑:如果您没有检入与 IDE 相关的文件,则每次检出项目时都必须重新配置构建路径、包含和所有这些内容。我不知道 ant(特别是从 Eclipse 创建/导出的 ant 构建文件)是否能够与其他 IDE 无缝协同工作。


在2017年,事实上的方法是使用Maven,并明确将IDE工作文件保留在源代码控制之外。所有主要的IDE都有良好的支持。 - Thorbjørn Ravn Andersen
7个回答

9

我们目前在SVN中维护着一个Netbeans项目和一个Eclipse项目,没有遇到任何问题。 Netbeans文件不会影响Eclipse文件。 我们的项目结构如下:

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

最重要的几点如下:

  • 禁止在任何IDE的项目文件中使用绝对路径。
  • 将项目文件设置为将类文件输出到同一目录。
  • 在.nbproject目录中svn:ignore私有目录。
  • svn:ignore用于从IDE和任何其他运行时生成的目录(例如上面的日志目录)输出类文件的目录。
  • 让使用者始终保持一致,以便快速解决差异。
  • 同时维护一个独立于IDE的构建系统,例如cruisecontrol。
  • 使用UTF-8并立即更正任何编码问题。

我们正在开发Fedora 9 32位和64位、Vista和WindowsXP,大约一半的开发人员使用其中一个IDE。少数人经常切换两种IDE。


7

聪明的回答是“通过这样做” - 除非您不使用多个IDE,否则您不知道自己是否真正准备好使用多个IDE。诚实地说。:)

我总是认为多个平台更加麻烦,因为它们可能使用不同的编码标准(例如,Windows可能默认为ISO-8859-1,Linux则为UTF-8)- 对我来说,编码比IDE引起了更多的问题。

一些指针:

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

我也喜欢这个答案,它真的很好。 - Arvodan

1
最好不要提交任何 IDE 相关的文件(如 Eclipse 的 .project 文件),这样每个人都可以签出项目并按照自己的方式进行操作。
话虽如此,我想大多数 IDE 都有自己的配置文件方案,因此也许你可以将其全部提交而不会发生任何冲突,但在我看来感觉很混乱。

0
大多数情况下,我同意seldaek的观点,但我也倾向于说,你至少应该提供一个文件,说明依赖关系、编译时要使用的Java版本等,以及NetBeans/Eclipse开发人员可能需要编译他们的IDE所需的任何额外信息。
我们目前只使用Eclipse,因此我们将所有Eclipse .classpath .project文件提交到svn中,我认为这是更好的解决方案,因为这样每个人都能够轻松地重现错误,而不必担心IDE的细节问题。

到目前为止,我们在这里做事情的方式是一样的。如果您丢失了有关依赖关系和编译的所有信息,那么新开发人员参与项目将会非常混乱。 - Arvodan

0

我认为构建应该采用“最低公共分母”的方法。放入源代码控制的是构建所需的内容。虽然我只使用Eclipse进行开发,但我的构建是通过命令行使用ant完成的。

关于源代码控制,我只检查从命令行构建所必需的文件。不包括Eclipse文件。当我设置新的开发机器(似乎每年两次)时,需要一些努力才能让Eclipse从ant构建文件中导入项目,但并不可怕。(理论上,其他IDE应该也可以这样做,对吧?他们肯定也能从ant导入吧?)

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


0

我使用Maven,并且只检入pom和源代码。
检出项目后,我运行mvn eclipse:eclipse命令。
我告诉SVN忽略生成的.project等文件。


0

这是我的做法:

  1. 只在源代码控制中维护您的ant构建脚本和相关类路径。类路径可以在ant脚本中明确指定,也可以在属性文件中或由ivy管理。
  2. 编写一个ant目标,从ant类路径生成Eclipse .classpath文件
  3. Netbeans将使用您的构建脚本和类路径,只需通过自由形式项目进行配置即可。

这样,您就可以获得独立于IDE的构建脚本和快乐的开发人员 :)

Netbeans网站上有一篇关于如何执行第3步的博客文章,但我现在找不到了。我在我的网站上放了一些关于如何执行上述操作的笔记 - 链接文本(虽然很快,但很丑,抱歉)

请注意,如果您正在使用Ivy(一个好主意)和eclipse,则可能会尝试使用eclipse ivy插件。我使用过它,发现它非常有bug和不可靠。最好使用上述第2点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接