Updating .settings/org.eclipse.wst.common.component file in a maven project

eclipse, maven, maven-2

Solution

How are you generating your eclipse files. Are you using the m2eclipse Eclipse plugin or are your using the maven-eclipse-plugin? m2eclipse is a plugin for Eclipse, run inside Eclipse. the maven-eclipse-plugin is a Maven plugin run from the cmd line to generate Eclipse project files based on your pom.xml.

I have always had better success using the maven-eclipse-plugin. The authors of m2eclipse do not suggest you try to use both plugins together.

If you are using the maven-eclipse-plugin, you should check a couple of things.

- Use the latest maven-eclipse-plugin version 2.7.

- Make sure your project is a 'war' packaging'

- Configure the maven-war-plugin as well and set the war source directory as you see fit. Add the following snippet to your pom.xml. This is how the maven-eclipse-plugin determines where your webapp lives.

  <plugin>  
    <artifactId>maven-war-plugin</artifactId>  
    <version>2.1-beta-1</version>  
    <configuration>  
      <warSourceDirectory>src/webapp</warSourceDirectory>  
    </configuration>  
  </plugin>

After making these changes and running `mvn eclipse:clean eclipse:eclipse` again, you should see the expected value in your component file.

Problem

I working with a maven project in eclipse and am having trouble with getting the deployment to work without some manual editing of xml files. When I build the project through maven I get a org.eclipse.wst.common.component xml file in my .settings folder. The file looks like the following: ``` <?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="1.5.0"> <wb-module deploy-name="ins-web"> <wb-resource deploy-path="/" source-path="/WebContent"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/java"/> <property name="context-root" value="ins-web"/> <property name="java-output-path"/> </wb-module> </project-modules> ``` The following line is causing the problem: ``` <wb-resource deploy-path="/" source-path="/WebContent"/> ``` Its looking to deploy everything below the WebContent folder when really it should be looking in src/webapp. The line should therefore look like this: ``` <wb-resource deploy-path="/" source-path="/src/webapp"/> ``` If I change it manually then it all works fine but I'd like to know if there is a way to avoid manually changing the file to make the build process easier for other people on my team.

Original source