Java 将Eclipse项目签入SVN

Java 将Eclipse项目签入SVN,java,eclipse,svn,Java,Eclipse,Svn,我想将我在eclipse中创建的动态Web项目签入svn。有人能告诉我哪些文件我必须签入,哪些不应该签入吗?其想法是能够使用“新建项目向导”签出项目,以便我可以再次创建动态Web项目。更具体地说,这里是我在项目中拥有的文件/目录-- src 网络内容 建造 距离 build.xml .项目 .classpath .设置/ 显然,不应该签入生成目录。其他的呢? 我猜所有的答案。也不应签入文件。有人能证实这一点吗? 这个dist目录和.settings目录是什么 eclipse在哪里存储服务器信

我想将我在eclipse中创建的动态Web项目签入svn。有人能告诉我哪些文件我必须签入,哪些不应该签入吗?其想法是能够使用“新建项目向导”签出项目,以便我可以再次创建动态Web项目。更具体地说,这里是我在项目中拥有的文件/目录--

  • src
  • 网络内容
  • 建造
  • 距离
  • build.xml
  • .项目
  • .classpath
  • .设置/
显然,不应该签入生成目录。其他的呢? 我猜所有的答案。也不应签入文件。有人能证实这一点吗? 这个dist目录和.settings目录是什么

eclipse在哪里存储服务器信息(tomcat)?我也不想登记

编辑:

我最初签入了上述所有内容,当然除了build目录。当我从Eclipse内部签出该项目时,它没有提示我创建一个新项目,因为有.project,但Eclipse正在创建一个JavaEE项目或其他项目,而不是动态Web项目。还有其他人有过这种行为吗

**编辑2**

找到了!结果是我不应该检查以下内容--

  • .项目
  • .设置/
  • .classpath

删除这3个选项后,“新建项目向导”将按预期工作,一切正常。

我将省略.project、.settings/、dist和build


如果使用变量而不是硬编码路径,则可以保留.classpath。这很有用,因此您不必每次签出项目时都重新生成类路径。

在我们的例子中,我们已签入列表中提到的所有内容,除了.settings/

通过签入
.classpath
.project
,用户可以快速签出项目并在新计算机上启动Eclipse,然后开始使用它;另一种方法是手动配置项目,并费力地添加所有jar依赖项(如果您使用ant)。许多开源项目都是这样做的


阅读,这里有一些非常好的观点值得思考。

好问题。。。对于是否要签入IDE相关文件,我们中的许多人都处于进退两难的境地。我通常会为eclipse签入.classpath,并使用eclipse变量来确保团队只需更改变量值,就可以正常工作。我们还签入.project,这样团队就不需要在他们的工作区中创建新项目。

如果您签入
.classpath/.project/.settings
,您将使您的项目特定于Eclipse。使用
Netbeans
IntelliJ
的开发人员如何?在我看来,保持项目IDE的独立性和易于设置更为简洁

我通常会选择Maven版本。
pom.xml
指定所有必需的依赖项,并且
mvn eclipse:eclipse
为您生成
.classpath/.project
文件

.settings
目录包含本地设置(如要使用的Java版本)。在我看来,签入此项是没有用的。您可以通过Maven2 pom强制执行Java版本遵从性

最后,对于你的下一个项目,我的任务是在你第一次提交之前忽略你不想在svn中使用的文件或目录。在Maven2设置中,它将是
.settings
.classpath
.project
目标(Maven2的默认输出目录)和任何其他生成的内容(日志文件、gfembed目录等)。在您的情况下,您将忽略
build
dist
,而不是
target

您可以使用
鼠标右键->团队->添加到svn:ignore'
(我使用Subclipse插件)来
svn ignore
文件或目录。忽略指令作为
svn属性
存储在父目录中。目录上的属性可以通过
鼠标右键->团队->显示属性查看。您也可以通过单击“值”字段直接在此处编辑属性。确保每个属性后面都有一行结束符


既然您已经提交并删除了这些文件,根据我的经验,忽略将不再有效。不知何故,我从未成功地忽略已签入SVN存储库的生成文件;他们就像僵尸,总是死而复生。也许通过在SVN回购协议中实际删除他们的条目可以实现这一点,但我从来没有这样做过

谢谢,这是一个关于IDE特定文件的好观点,使用svn ignore也是一个好主意。虽然.settings的内容是特定于Eclipse的,但这并不意味着它们不需要与团队的其他成员共享。具体来说,您可能希望为您的项目共享JDT警告首选项。通过生成它们来分享这些将是一种真正的痛苦。这一点很好。我有时通过从IDE导出这些设置并共享文件来共享这些设置。例如,Eclipse允许导出格式和代码模板规则。另一个例子是checkstyle设置。所有这些设置通常都是公司范围内的策略,因此人们经常在Confluence Wiki上找到它们,而不是签入每个项目。这些文件的存在允许其他eclipse开发人员使用它们,并且根本不会伤害其他IDE的用户-将它们签入生成的eclipse工件中实际上会伤害使用eclipse的人,不是使用其他IDE的人。本地生成的工件将与签入版本保持“斗争”(显示为更改)。根据一般经验,提交生成的源代码(几乎)从来都不是一个好主意。博客文章的死链接,新URL是: