Java Web项目没有';如果在eclipse中打开了依赖项目,则不能在服务器上运行
我正在用Eclipse4.4.2、Maven和TomcatV7.0开发一个web应用程序。该应用程序由Java Web项目没有';如果在eclipse中打开了依赖项目,则不能在服务器上运行,java,eclipse,maven,tomcat,Java,Eclipse,Maven,Tomcat,我正在用Eclipse4.4.2、Maven和TomcatV7.0开发一个web应用程序。该应用程序由 AppSuite(pom) AppModel(jar,有一些自动生成的类) AppUserInterface(war,取决于AppModel) AppUserInterface和AppModel是AppSuite的模块 我目前面临的问题是,如果我在Eclipse中打开了所有三个项目,并且我尝试在服务器上运行AppUserInterface,那么所有内容都会正确地移动到tomcatwebap
- AppSuite(
)pom
- AppModel(
,有一些自动生成的类)jar
- AppUserInterface(
,取决于AppModel)war
webapps
文件夹中(*.AppUserInterface的.class
文件和所有libs,包括AppModel.jar
)但是tomcat抛出了一个异常
java.lang.NoClassDefFoundError: com/app/model/ClassName
但是如果我在eclipse中关闭项目AppModel,当我在服务器上运行AppUserInterface时,一切都会正常运行
如果AppUserInterface与本地AppModel一起工作,我怀疑eclipse会感到困惑
有没有办法解决这个错误,这样我就可以同时打开所有三个项目,并且仍然运行AppUserInterface
编辑:java.lang.NoClassDefFoundError:com/app/model/ClassName类不是自动生成的类。添加了赏金,2分钟后找到了解决方案
解决方法是在这个主题中使用rmtheis的anwser,我到目前为止还没有找到它。一个简单的
Project->Clean…
以某种方式解决了这个问题。你在什么环境下工作?窗户?因为如果某些进程(如IDE)上有文件锁定,则在Windows上移动目录将不起作用。Windows,我已检查所有文件是否复制到webapps
文件夹中,而AppModel.jar
还包含所有需要的*.class
文件。自动生成的类是如何创建的?通过maven的generate sources
阶段的maven插件pojobuilder-3.4.0
。AppModel.jar
包含所有这些生成的类。我可能忘记提到的是,NoClassDefFoundError
不是生成的类之一。当从Eclipse内部运行时,并不是所有Maven阶段都被调用。也许这有助于: