Monday, March 23, 2009

Get 'This project needs to migrate WTP metadata' error on Eclipse/Maven 2

Today I took a look of old source code base which I had not maintain for such a long time. It is a mock object of a web service. I wrote an XML-RPC client for a vendor specific API, and I need a mock servlet to test the code.
Today I decided to mavenize the project, as now I believe that's the best way to maintain my source code base. Because the servlet is a web application, I create the maven source try.

Oh ya, by the way I'm using these:
Eclipse 3.4 (Ganymede)
Apache Maven 2.0.9
Eclipse IAM == Maven Integration for Eclipse plugin == Q4E plugin (still prefer to call it Q4E)

After creating the source tree base I created the Eclipse configuration file using the Maven's Eclipse plugin.
I just need to invoke this maven task:

[sourcecode lang="shell"]
mvn eclipse:eclipse
[/sourcecode]

Then I opened the project in Eclipse. I found my project caught a chicken pox (a part of the project got the red rashes - errors). I tried to rebuild, and got this message:

 This project needs to migrate WTP metadata


I knew I missed something, but it's been 2 months since last time I configured Maven 2 web application, and I have totally forgotten the exact steps to do it.

Later I realised that I need to specify the WTP version, so here's the solution:

1) Clean up the project file, run the Maven 2 Eclipse plugin clean task

[sourcecode lang="shell"]
mvn eclipse:clean
[/sourcecode]

2) Create the Eclipse configuration, now specifying the WTP version

[sourcecode lang="shell"]
mvn eclipse:eclipse -Dwtpversion=2.0
[/sourcecode]

3) Open the Maven 2 project in Eclipse IDE, refresh the project so that changes made on the file system is reflected in the Eclipse project as well

4) Remove the library references that contains M2_REPO

Because I'm using Q4E plugin and seemed that the Maven 2 Eclipse plugin was configured for use with other plugin (Mevenide or m2clipse), they specified the M2_REPO variable and repository which you don't need when using Q4E.

Just right click on the project, select Properties - Build Path, remove the libraries that contains M2_REPO.

4) Right click on the Project, select - Maven 2 - Use Maven Dependency Management

If it's already checked, then what you need to do is to uncheck it. After that refresh the project, and then check it again.

No comments:

Post a Comment