70
votes

I use m2e 1.2.0 and m2e-wtp 0.16.0, and occasionally my Eclipse build fails with the error:

<path>/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF (No such file or directory)

The problem can be temporarily solved by doing a Maven->Update project..., but the error will come back after a while. Not sure what exactly the trigger is....

Any suggestions on how to fix the issue permanently?

[Edit] I found that the issue is triggered when I build the project externally using the Maven command line directly. This will remove the default MANIFEST.MF that m2e-wtp generates, and it apparently doesn't get regenerated until you do a rebuild in Eclipse.

18

18 Answers

108
votes

Eclipse versions earlier than Luna

I'm not certain if this is the best thing to do but I followed the instructions mentioned here with regards to getting rid of the auto generated web resources folder and this seems to also resolve the issue with the missing MANIFEST.MF:

  • on your project only : right-click on the project > Properties > Maven > WTP : check "Enable Project Specific Settings" and uncheck "Maven Archiver generates files under the build directory"
  • on the whole workspace : Window > Preferences > Maven > WTP : uncheck "Maven Archiver generates files under the build directory"

We actually generate our manifest entries as part of the maven-war-plugin when we actually want to package/build the project, but I dont think m2e-wtp uses this. In any event, the manifest file is irrelevant for us in the build that m2e-wtp creates for use within eclipse.

Eclipse Luna and later

For Eclipse Luna you have to go:

Preferences > Maven > Java EE Integration and uncheck "Maven Archiver generates files under the build directory".

Eclipse Luna does not have the path at project Properties and the WTP section

34
votes

This solution works for me Rightclick on Project --> Properties --> Maven --> Java EE Integration --> check enable project specific settings and disable Maven archiver generates files

28
votes

Try to select your project, and clean it by using the menu :

Project>Clean

Then refresh your pom.xml. That worked for me .

6
votes

Try Eclipse -> Project -> Clean

Then right click Your project --> Team --> Share Project --> SVN --> Choose your svn and ok

Everything should be solved

4
votes

Right click on Your Project, go to properties and then to Project Facets, now go to Runtime tab on the right and select the server and click on apply, the error message would be gone.

3
votes

In your pom.xml file check the following thing,

<build>
<finalName>Write a file name which is Your Maven Buid Name</finalName>
</build>
3
votes
  1. Go to pom.xml
  2. Ctrl+a then Ctrl+x then Ctrl+s then Ctrl+v then Ctrl+s
  3. Right Click on project. Maven -> update project

This got solved for me.

2
votes

manifest.mf is getting destroyed when we try to do maven build using mvn clean install. If we don't want to destroy manifest.mf file, just enter the command mvn install in the command prompt.

And if we missed the manifest.mf file, we can generate by uncheck & check the "Maven archiver generates files under the build directory" option in maven - JAVA EE integration as you said.

2
votes

Clean All Projects will solve this issue.

2
votes

Right click on project > properties > maven > update project > select last three options > click ok

Done. It worked for me

0
votes

Replacing manen to an external installation solved it for me.
Window -> Preferences -> [search maven in the search box] -> Installation Add a full external maven installation and select its checkbox. apply and restart.

0
votes

Cleaning the project didn't do the trick,There were 2 external jars that were added to the build path removing them and moving them inside pom.xml really fixed the issue for me.

0
votes

I use eclipse Luna and find it useless to enable project specific settings. Finally, I found the configure file org.eclipse.m2e.wtp.prefs in project .settings and change the configuration "org.eclipse.m2e.wtp.enableM2eWtp=true". It works after maven build the project. Hope this is help to people meets the same case as me. :D

0
votes

For Marte Eclipse:

Go to: Window > Preference > Marven > Java EE Integration

Uncheck Marven Archiver generates files under the build directory.

It's Works

0
votes

To make sure resources are properly refreshed, as maven cleans up target, you can setup maven build to automatically refresh project + target folder, etc.,.

Check the option to automatically refresh resources in your maven build

0
votes

in my case (Eclipse Neon), I enabled Maven Archiver generates files under build directory

-1
votes

m2e-wtp plugin might generating an almost empty MANIFEST.MF in /target/m2e-wtp/web-resources/META-INF folder, no matter where you place the real MANIFEST.MF have a look at Virgo's admin console. Just browse the "bundles" category the bundle. You'll see what packages are being imported and exported FOR REAL.

So what you can do is copy the MANIFEST.MF to the /$VIRGO_BASE/stage/$BUNDLE_WEBAPP/META-INF directory and hit "redeploy" in Eclipse's Server View.

-2
votes

Just below the above line, I was getting an additional info saying "Out of Sync" I only ran project clean "my project" and bingo, it worked for me..