【问题标题】:Eclipse WTP / m2eclipse - can neither clean nor publish to tomcatEclipse WTP / m2eclipse - 既不能清理也不能发布到 tomcat
【发布时间】:2012-03-25 19:05:56
【问题描述】:

我正在开发一个非常复杂的项目(Java / Spring / Maven 多模块),在 Ubuntu 11.10 / 64 位上使用 Eclipse Indigo Java EE(大量使用 m2eclipse)中的 WAR 覆盖

直到今天早上都很好:我无法再清理/发布到 tomcat:

Publishing failed
Could not delete <directory> May be locked by another process.

我可以很容易地手动删除这些文件(但 tomcat 仍然无法发布),我无法找出可能是哪个进程锁定它(linux:lsof &lt;directory&gt;

我在 Eclipse 中尝试了一些 sh..load 的东西:删除项目(然后工作),再次添加(同样的问题),删除服务器配置,删除 tomcat 配置,更新 eclipse,使用 -clean 启动 eclipse,将服务器目录移出的插件文件夹,将项目回滚到前几天肯定工作的分支......

如前所述:一切都很好,直到昨天。我发现了这个问题here,最近有人遇到了同样的问题。谷歌搜索并没有透露太多。有些人有类似的问题,他们通过大量删除/重新创建服务器配置来“修复”这些问题。至少尝试了 10 次。

同样的问题在一个同事的 linux 机器上 - 他昨天设置了他的系统并立即遇到了它。

我发现了可能相关的 m2e-wtp 的 this 错误报告。

更新:我很确定它是 WAR 覆盖和这个用于 WTP 的 Maven 集成构建的组合:0.15.1.20120208-1300 居然想降级到0.14...

【问题讨论】:

  • 你没有进行任何 Eclipse 更新吗?
  • 问题最初发生的时间:否。在我尝试修复它的过程中:是的

标签: eclipse tomcat m2eclipse


【解决方案1】:

我认为没有简单的解决方案。你可以尝试什么:

创建一个 Eclipse 启动配置,以便您可以从自身调试 Eclipse。查看 WTP 的来源,找出错误消息的来源并设置断点。

获取插件的副本并更改代码以在无法删除目录中的文件时列出它们。我的直觉是某些进程(例如从 m2e 复制的资源)正在将文件复制到目录中,而其他一些插件试图重新部署。

也就是说:我已经放弃了 Tomcat 和 WAR 部署。它太慢而且太容易出错。对于我的所有项目,我使用在 Eclipse 中运行的嵌入式 Jetty 服务器。原因:

  • Jetty 服务器获得与编译器相同的类路径。没有必要浪费我的时间复制东西。
  • 启动速度更快(Jetty:5 秒,Tomcat 部署:45 秒)
  • Jetty 服务器是一个普通的 Java 应用程序,所以我不必设置远程调试
  • 我可以通过单元测试运行同一台服务器
  • 我可以配置 Jetty 何时应该重新启动
  • 不要弄乱 XML 配置文件

【讨论】:

  • 感谢您的帮助。我实际上正要搜索资源,但这肯定不是一件容易的事(至少对我来说不是)。我们花了很长时间才找出导致问题的插件......
【解决方案2】:

它是结合了 WAR 覆盖的插件。使用此夜间构建修复它: http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-e37/all/repo/ (版本 0.16.xxx)

我看到了这个网址 http://download.jboss.org/jbosstools/builds/staging/m2eclipse-wtp-staging/all/repo/ 提供版本 15.2.xxx,这可能是更好的(第一次)尝试,因为我不知道每晚 16.xxx 会弹出什么其他问题...

【讨论】:

    【解决方案3】:

    这对我有用:

    1. go to server tab. 
    2. Double click on tomcat server.
    3. in the tomcat config window check server modules without publishing
    4. start the server. (this will replace your project deployed in tomcat)
    5. stop the server.
    6. in the tomcat config window Uncheck server modules without publishing.
    7. start the server.
    

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 2011-10-22
      • 2018-04-06
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多