How to configure custom maven project structure

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

  • How to mark a build unstable in Jenkins when running shell scripts
  • How can I stop an Xcode Archive build if my git working copy is dirty?
  • How remove duplicate of the same dependiencies sources in dependent projects
  • Building multiple Maven profiles for a single Jenkins job
  • How to promote a specific build number from another job in Jenkins?
  • Build on commit with subversion
  • 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?

  • Jenkins set github commit status not working
  • Trouble building J2V8 on Ubuntu
  • Jenkins and Git - how to grab a committer's name?
  • Project templates Eclipse / Java
  • How to deploy SpringBoot Maven application with Jenkins ?
  • Jenkins-Job fails
  • 2 Solutions collect form web for “How to configure custom maven project structure”

    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.

    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.

    Git Baby is a git and github fan, let's start git clone.