【发布时间】:2012-03-28 09:59:28
【问题描述】:
我已经在使用一个开源 GWT 项目 (iServe),我想将另一个开源 GWT 项目 (PetalsBPM) 集成到其中,我的意思是能够调用它并引用它的方法。
我已经在 Eclipse 中导入 iServe(它有多个模块)作为单独的 Maven 项目引用它的另一个,并且可以通过 Runas -> Web 应用程序在开发模式下成功运行它。
如果我这样做并通过控制台以 mvn gwt:run 运行另一个项目,我会通过 iServe 调用启动 PetalsMBP。但是,这意味着这两个程序必须按原样运行,而无需相互通信。
我还成功地将第二个项目作为 java 项目导入到 eclipse 中(转换为 Maven 会导致问题 - 各种生命周期配置问题),但是每当我尝试通过 Properties -> Java Build Path 添加到 iServe ->项目,虽然它不会立即导致任何错误,但我无法再启动 iServe。它会产生以下错误:
"执行命令行时发生异常。 无法运行程序“C:\Program Files\Java\jre7\bin\javaw.exe”(在目录“C:...iserve-sal-gwt-1.0.0-SNAPSHOT”中):CreateProcess error=206,文件名或扩展名太长”
我的问题是否与 PetalsBPM 不是 Eclipse 中的 Maven 项目有关(我对此表示怀疑)? 我做错了什么,即这不是从另一个项目引用项目的方法吗?我应该添加对第一个项目(iServe)gwt.xml 文件的引用吗? 有没有办法做我想做的事,而不必将第二个项目包装为 jar 并从 iServe 调用它?我宁愿不这样做,因为每次我做一个微小的改变时都生产一个罐子并不是很有效!
P.S:第二个项目是一个普通的 GWT 项目,它有一个入口点,而不仅仅是一个模块。我应该删除它吗?
更新:试图找出这个错误的根源,我试图简化问题,所以我执行了以下动作:
- 我创建了两个新的简单 GWT 项目并尝试引用一个 从另一个。工作正常
- 我引用了我真正想要的项目 使用我刚刚创建的简单的(PetalsBPM)。也有效 很好。
- 我从原来的项目中引用了新的简单项目 想要使用(iServe)。也可以正常工作。
- 尝试做我实际做的事 想要做,从 2 和 3 复制设置。产生相同的错误 “CreateProcess 错误 = 206,文件名或扩展名太长”如果 我引用 PetalsBPM(当我从引用的 项目)
所以,我尝试切换工作区。我在 C:\ 中创建了一个新工作区,并将实际项目移到那里。仍然没有用。 :(
还有什么想法吗?
【问题讨论】:
-
我发现了问题所在,所以我在此发布解决方案,供将来可能遇到的任何人使用。问题不是由于单个文件名/路径名太长,而是整个对 google eclipse 插件的请求太大。具体来说,问题是由于第二个项目需要太多的库/罐子引起的。我不仅需要更少的 jar,而是简单地将所有 jar 移动到 C: 并将它们重命名为具有两个字符(a1、b9 等)的文件,这样就成功了。