Eclipse(java)web服务、要发布哪些文件以及如何正确地将项目拉到新计算机上?

Eclipse(java)web服务、要发布哪些文件以及如何正确地将项目拉到新计算机上?,java,eclipse,web-services,repository,versioning,Java,Eclipse,Web Services,Repository,Versioning,好的,我有一个web服务,它是使用eclipse动态web项目创建的。它目前在CVS存储库中共享,但所使用的版本控制系统并不相关。目前,我还没能按原样完成这个项目,让它正常工作。它会导致无数无法修复的错误。每次我需要在新机器上使用此Web服务时,我都必须创建一个全新的动态项目,复制源文件,添加所有必要的库,并使部署程序集再次正常工作。在最终运行之后,我将该项目作为同一个项目共享,一秒钟后停止,然后再次同步(在某种程度上诱使eclipse认为这一直都是共享项目) 我觉得其他人一定遇到了这个问题,并

好的,我有一个web服务,它是使用eclipse动态web项目创建的。它目前在CVS存储库中共享,但所使用的版本控制系统并不相关。目前,我还没能按原样完成这个项目,让它正常工作。它会导致无数无法修复的错误。每次我需要在新机器上使用此Web服务时,我都必须创建一个全新的动态项目,复制源文件,添加所有必要的库,并使部署程序集再次正常工作。在最终运行之后,我将该项目作为同一个项目共享,一秒钟后停止,然后再次同步(在某种程度上诱使eclipse认为这一直都是共享项目)

我觉得其他人一定遇到了这个问题,并找到了解决办法。因此,如果您有一个web服务或任何动态web项目,您将共享哪些文件,以及如何成功地将其从存储库中提取出来,并使其在另一台机器上运行,而不是像我现在所做的那样

非常感谢你的帮助

-阿萨夫

编辑:在阅读了一些回复之后,我觉得这个问题实际上对那些使用WTP创建/测试其web服务的人更为具体。我只是想澄清一下


Edit2:我还要澄清一下,其他20个左右没有使用WTP的项目可以很好地共享。我能够毫无问题地拉动和运行它们。只有web服务项目是一个问题。

我主要是分享我的经验,也许你能找到一些帮助

从概念上讲,IDE在创建新项目时可以自己生成的文件不应该被推送。即,不应推送IDE特定的文件。IDE无法自行生成的所有内容都必须推送

例如,在eclipse的情况下,不应推送以下文件:

.settings
build
.classpath
.project
要在新机器上设置项目,首先从服务器中提取文件,然后使用提取的文件从IDE创建项目


编辑:如果您的项目有外部JAR/库,则必须手动添加到类路径。您也可以推送.classpath,但这可能会在创建新项目时出错。

一般来说,您希望签入所有不是“派生”的内容(生成或编译的-通常是
bin
目录的内容或编译/内置代码的其他地方)。对于EclipseJava项目,您希望包含.project、.classpath、.settings以及Web工具可能为动态Web项目创建的任何其他类似文件。EclipseCVS客户端将忽略标记为派生的文件,因此您不必太担心它

如果没有更多关于你遇到了什么样的问题的细节,就不可能猜测是什么导致了这些问题。我唯一的猜测是,可能您在不同的机器上安装了不同版本的Eclipse和/或WTP(Web工具平台)插件。这只是一个猜测,但可以解释从CVS签出项目时的一些不兼容性


总之,Eclipse专家长期以来一直推荐使用签入那些。*文件的方法。Maven可以改变一些事情,但是您没有提到它,所以我假设您没有使用它。

我认为使用构建系统并让IDE从您的构建系统生成项目是最简单的


Eclipse、Netbeans和Intellij都非常擅长从maven或ant构建文件构建项目。使用此解决方案,您可以轻松地在CI(Hudson、Bambor等)中设置一个简单的构建,并且不必签入任何特定于IDE的文件。如果我的工作区与你的工作区完全不同,有不同的版本、插件等等,那么我不会被你的项目文件束缚,你也不会被我的项目文件束缚。我的IDE创建适合我的环境的项目,而您的IDE也会创建适合您的项目。

由于您提到必须手动添加库,我假设您除了使用ecplise之外,没有使用任何构建管理器(如maven或ant)

为了使ecplise能够正确处理项目,您需要在其各自的目录中包含源文件(*.java)、与web服务捆绑在一起的任何资源(例如services.xml)、.project“、.classpath“、.settings”等eclipse文件。这应该足以让eclipse生成构建项目所需的任何其他内容

eclipse在构建过程中生成的任何文件/目录(例如target&bin目录、*.class、*.war)都不应签入—它们将在构建过程中需要时生成

我认为,由于您手动添加必要的第三方JAR,这些库可能位于计算机之间的不同路径中(例如,如果路径包含用户名,则不能为不同的用户将其转移到另一台计算机)。要解决这个问题,可以使用eclipse类路径变量设置类路径。在Preferences->Java->Build Path->Classpath Variables中,设置一个变量,链接到第三方jar存储的“root”文件夹。然后使用这个新变量将库添加到项目中,而不是使用它们的完整路径。要使它在其他人的计算机上工作,您只需要设置这个classpath变量,使构建路径指向正确的库


如果您只将项目从eclipse迁移到一个构建管理器(例如maven)来处理这些问题,这可能是有益的。Eclipse可以从build manager的配置中构建项目,从而更容易管理项目。

所有源/配置/etc文件,以及用于依赖项的Maven pom文件。没有别的了。如果您没有使用某种依赖关系管理,那么库。这些文件,而不是
build
目录,肯定应该包括在内。这些文件告诉EclipseH