关于eclipse:您如何处理不同的Java IDE和svn?

关于eclipse:您如何处理不同的Java IDE和svn?

How do you handle different Java IDEs and svn?

如何确保可以将代码检出到Eclipse或NetBeans中并在其中使用?

编辑:如果不签入与ide相关的文件,则每次签出项目时,都必须重新配置buildpath,包括所有这些内容。 我不知道ant(尤其是从eclipse创建/导出的ant buildfile)是否可以与其他ide无缝配合使用。


现在,我们实际上为SVN中的代码维护了一个Netbeans和一个Eclipse项目,一点也不麻烦。 Netbeans文件不在Eclipse文件上。我们的项目结构如下:

1
2
3
4
5
6
7
8
9
10
11
sample-project  
+ bin
+ launches  
+ lib  
+ logs
+ nbproject  
+ src  
  + java
.classpath
.project
build.xml

最大的问题似乎是:

  • 禁止任何绝对路径
    这两个IDE的项目文件。
  • 设置项目文件以输出
    类文件到同一目录。
  • svn:忽略私人
    .nbproject中的目录
    目录。
  • svn:ignore用于的目录
    IDE和其他任何运行时生成的目录(例如上面的logs目录)输出的类文件。
  • 让人们一致地使用两者
    使分歧得到解决
    很快。
  • 同时维护构建系统
    独立于IDE,例如
    巡航控制。
  • 使用UTF-8并更正所有编码问题
    立即。

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


明智的选择是"这样做"-除非您不使用多个IDE,否则您不知道自己是否真的准备好使用多个IDE。诚实。 :)

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

一些更多的指针:

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


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

话虽这么说,我想大多数IDE都有自己的配置文件方案,因此也许您可以提交所有文件而不会发生任何冲突,但是imo感觉很混乱。


这是我的工作:

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

    在netbeans网站上有一个关于如何做的博客3.但是我现在找不到它。 我已经在我的网站上对如何执行上述操作做了一些说明-链接文本(虽然又快又丑,对不起)

    请注意,如果您使用的是Ivy(一个好主意)和eclipse,则可能会想使用eclipse ivy插件。 我用过它,发现它是令人毛骨悚然的越野车,而且不可靠。 最好在上面使用2。


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


    我的哲学是构建应使用"最低公分母"方法完成。进行源代码管理需要执行构建。当我专门使用Eclipse进行开发时,我的构建是通过命令行使用ant进行的。

    关于源代码控制,我仅从命令行检入对构建至关重要的文件。没有Eclipse文件。当我安装一台新的开发机器(似乎每年两次)时,需要花费一点精力才能使Eclipse从一个蚂蚁构建文件中导入该项目,但并不令人害怕。 (理论上,这对于其他IDE应该也一样,不是吗?难道它们必须能够从ant导入吗?)

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


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

    目前,我们仅使用Eclipse,因此我们将所有Eclipse .classpath .project文件都提交给svn,我认为这是更好的解决方案,因为那样每个人都能够重现错误,而不是轻而易举,而不必费心使用IDE细节。


    推荐阅读

      更新文件命令linux?

      更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

      linux下读取文件命令?

      linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

      linux改文件夹名命令?

      linux改文件夹名命令?,名字,软件,命令,文件,系统,目录,目标,文件名,源文件,

      linux建文件命令格式?

      linux建文件命令格式?,系统,名字,名称,时间,密码,命令,文件,文件夹,不了,数

      下载文件的命令linux?

      下载文件的命令linux?,平台,工具,服务,密码,软件,网络,位置,代理,手机,工作,

      linux内核配置命令?

      linux内核配置命令?,工作,系统,管理,环境,信息,命令,工具,软件,设备,服务,调

      linux命令文件传输?

      linux命令文件传输?,系统,数据,命令,文件,基本知识,源文件,目录,目标,功能,

      linux文件全选命令?

      linux文件全选命令?,电脑,系统,环境,代码,平台,服务,快捷键,文件,命令,权限,l

      linux浏览文件类命令?

      linux浏览文件类命令?,系统,信息,数据,情况,命令,标准,时间,文件,概念,管理,

      linux打包文件夹命令?

      linux打包文件夹命令?,系统,工具,管理,图片,文件,命令,位置,软件,目录,格式,l

      linux中统计文件命令?

      linux中统计文件命令?,系统,信息,数据,情况,工作,文件,时间,档案,标准,名称,L

      linux重名名文件命令?

      linux重名名文件命令?,图片,名称,名字,文件,命令,位置,代码,软件,系统,文件

      linux进入配置的命令?

      linux进入配置的命令?,网络,地址,服务,系统,状态,工作,信息,技术指标,最新,

      linux的建立文件命令?

      linux的建立文件命令?,名称,系统,时间,名字,命令,文件夹,位置,密码,不了,文

      linux06文件命令?

      linux06文件命令?,数字,系统,工作,第一,名字,信息,管理,文件,目录,命令,linux

      linux将文件备份命令?

      linux将文件备份命令?,系统,密码,设备,软件,通讯,较大,认证,服务,数据,文件,L

      linux扩展文件命令?

      linux扩展文件命令?,工作,地址,系统,信息,命令,目录,管理,情况,文件,标准,Lin

      linux命令新增文件夹?

      linux命令新增文件夹?,系统,名字,首次,名称,新增,文件,命令,文件夹,地址,密

      linux推送文件命令?

      linux推送文件命令?,地址,系统,情况,工作,命令,文件,电脑,密码,信息,目录,Lin