我使用m2e 1.2.0和m2e-wtp 0.16.0,偶尔我的Eclipse构建失败并出现错误:
<path>/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF (No such file or directory)
这个问题可以通过做一个Maven->Update project...
暂时解决,但错误会在一段时间后回来。不知道触发器到底是什么......
有关如何永久解决问题的任何建议?
[编辑]我发现当我直接使用Maven命令行在外部构建项目时会触发该问题。这将删除m2e-wtp生成的默认MANIFEST.MF,并且在Eclipse中进行重建之前,它显然不会重新生成。
早于Luna的Eclipse版本
我不确定这是否是最好的事情,但我按照提到here的说明摆脱了自动生成的web资源文件夹,这似乎也解决了缺少MANIFEST.MF的问题:
- 仅在您的项目上:右键单击项目>属性> Maven> WTP:选中“启用项目特定设置”并取消选中“Maven Archiver在构建目录下生成文件”
- 在整个工作区:窗口>首选项> Maven> WTP:取消选中“Maven Archiver在构建目录下生成文件”
当我们真正想要打包/构建项目时,我们实际上生成了我们的清单条目作为maven-war-plugin的一部分,但我不认为m2e-wtp使用它。无论如何,清单文件与m2e-wtp在eclipse中创建的构建中无关。
Eclipse Luna及其后
对于Eclipse Luna,你必须去:
首选项> Maven> Java EE集成并取消选中“Maven Archiver在构建目录下生成文件”。
Eclipse Luna在项目属性和WTP部分没有路径
将manen更换为外部设备为我解决了这个问题。 窗口 - >首选项 - > [在搜索框中搜索maven] - >安装添加完整的外部maven安装并选中其复选框。申请并重启。
清理项目没有做到这一点,有两个外部jar被添加到构建路径中删除它们并将它们移动到pom.xml中真的解决了我的问题。
我使用eclipse Luna并发现它无用于启用项目特定设置。最后,我在项目.settings中找到了配置文件org.eclipse.m2e.wtp.prefs并更改了配置“org.eclipse.m2e.wtp.enableM2eWtp = true”。它在maven构建项目之后工作。希望这有助于人们遇到与我相同的情况。 :d
对于Marte Eclipse:
转到:Window> Preferences> Maven> Java EE Integration
取消选中Marven Archiver会在构建目录下生成文件。
其作品
为确保资源得到正确刷新,当maven清理目标时,您可以设置maven构建以自动刷新项目+目标文件夹等。
Check the option to automatically refresh resources in your maven build
在我的情况下(Eclipse Neon),我启用了Maven Archiver在build目录下生成文件
这个解决了我。
m2e-wtp插件可能会在/ target / m2e-wtp / web-resources / META-INF文件夹中生成一个几乎为空的MANIFEST.MF,无论你在哪里放置真正的MANIFEST.MF都可以查看Virgo的管理控制台。只需浏览捆绑包的“捆绑”类别即可。您将看到正在导入和导出FOR REAL的包。
因此,您可以将MANIFEST.MF复制到/ $ VIRGO_BASE / stage / $ BUNDLE_WEBAPP / META-INF目录,并在Eclipse的Server View中点击“redeploy”。
在上面一行的下方,我得到一个额外的信息说“不同步”我只运行项目清理“我的项目”和宾果游戏,它对我有用..
此解决方案适用于我右键单击项目 - >属性 - > Maven - > Java EE集成 - >检查启用项目特定设置并禁用Maven归档程序生成的文件
尝试选择您的项目,并使用菜单清除它:
项目>清除
然后刷新你的pom.xml。这对我有用。
尝试Eclipse - > Project - > Clean
然后右键单击您的项目 - >团队 - >共享项目 - > SVN - >选择您的svn和确定
一切都应该解决
右键单击Your Project,转到属性,然后转到Project Facets,现在转到右侧的Runtime选项卡并选择服务器并单击apply,错误消息将消失。
在你的pom.xml文件中检查以下内容,
<build>
<finalName>Write a file name which is Your Maven Buid Name</finalName>
</build>
当我们尝试使用mvn clean install进行maven构建时,manifest.mf会被破坏。如果我们不想销毁manifest.mf文件,只需在命令提示符下输入命令mvn install即可。
如果我们错过了manifest.mf文件,我们可以通过取消选中生成并检查maven中的“Maven归档器生成文件在构建目录下”选项 - 如你所说的JAVA EE集成。
清洁所有项目将解决此问题。
右键单击项目>属性> maven>更新项目>选择最后三个选项>单击确定
完成。它对我有用