如何在Eclipse中运行具有两个不同名称的相同项目

时间:2011-08-19 15:09:44

标签: eclipse java-ee jetty

我的工作区中有两个具有不同名称的Web项目(Java)。一个是 currentVersion ,另一个是 OldVersion ,今天从SVN签出(几乎100个提交低于当前版本) )。

我正在尝试同时运行这两个项目,因为我需要修复一个没有出现在同一个项目的旧版本中的bug。

问题是,我能够通过以下链接从Web浏览器访问CurrentVersion项目。

http://localhost:8080/<ProjectName-CurrentVersion>/

但我无法通过以下链接访问OldVersion

http://localhost:8080/<ProjectName-OldVersion>/

我应该怎样做才能同时运行这两个项目?

我正在使用Jetty Servlet Container。

然后我还尝试从Jetty的Webapps文件夹中删除当前版本项目,并尝试单独运行旧版本。

但是,Jetty没有部署OldVersion项目,它会抛出错误

F:/Oops/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/CurrentVersion/

找不到

如何在Eclipse中同时运行这两个项目?

任何建议都会很有意义!

由于

3 个答案:

答案 0 :(得分:1)

  • 导出项目的CurrentVersion和OlderVersion的 WAR ,并将其部署到Tomcat中,以检查是否存在与Jetty或Eclipse相关的问题。
  • 如果项目部署成功,那么Jetty可能会出现问题。
  • 尝试关闭两个项目并打开它。有时与项目相关的元数据会导致类似这样的问题。
  • 部署 OlderVersion 项目时,您可能已经复制了一些CurrentVersion的.metadata文件。这也可能会导致问题。
  • 最好的办法是创建一个仅包含OldVersion src和webcontent文件的新项目。不要从其他项目中复制任何.metadata文件。

答案 1 :(得分:1)

您可能需要使用唯一的部署名称和上下文根。如果两个版本共享这些属性,您可能会遇到冲突。您可以通过修改项目的WTP配置来解决此问题。可能需要修改org.eclipse.wst.common.component文件(项目根目录的.settings目录中)中的以下配置属性,以使它们是唯一的:

<project-modules id="moduleCoreId" project-version="2.0">
  <wb-module deploy-name="theProjectName-theVersion">
  <property name="context-root" value="/theContextRoot-theVersion"/>
  . . .

然后,您需要使用提供的自定义上下文根访问您的Web应用程序:

http://localhost:8080/theContextRoot-theVersion/

答案 2 :(得分:0)

没有Jetty的经验。但我认为它可以在Jetty的配置文件中配置,如tomcat。