4

I know that typically maven structure is like this:

 pom.xml
 src
   - main
   - web
    - WEB-INF

However, I have a project which has the following structure

src
  - main
web
  - WEB-INF

The latter of the two above currently does not use maven. I've started using maven for this project locally by making the structure conform to the maven standard. However, I now want to automatically build this project from jenkins by getting it out of the source control (svn). So I would like to just add a pom.xml which is aware of the fact that web isn't inside src

Is this possible to do with maven?

birdy
  • 9,286
  • 24
  • 107
  • 171

2 Answers2

6

You can configure the maven-war-plugin to use another warSourceDirectory but as Jeff Storey explains in his answer it is really not recommended.

This is how you would do it:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

One of several problems is for example that the maven-jetty-plugin will not run out-of-the-box. It will by default look in src/main/webapp so that has to be configured.

You might not use the maven-jetty-plugin but you get the idea.

Community
  • 1
  • 1
maba
  • 47,113
  • 10
  • 108
  • 118
  • This would be acceptable as long as the war is created. Right now the war is being created, however, with the above changes you suggested the WAR isn't including my src classes. – birdy Nov 15 '12 at 13:07
  • @birdy Where is your source? `src/main/java` or elsewhere? – maba Nov 15 '12 at 13:29
3

Using the maven war plugin properties, you can set the warSourceDirectory property http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html (I'm not sure exactly what problems you're having, so this may or may not solve your specific problem).

However, maven is very opinionated and I would strongly recommend using the expected maven structure. Other plugins may give you unexpected problems down the road, and maven life is generally a lot easier when you follow their conventions.

Jeff Storey
  • 56,312
  • 72
  • 233
  • 406