Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven: Combining multiple module jars into one war file?

Tags:

java

maven

I have a project babybird which has 3 components persistence, business and service

in babybird's pom.xml I have following

   <modules>
        <module>persistence</module>
        <module>business</module>
        <module>service</module>
    </modules>

when I run mvn clean install, I see

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] babybird  ......................................... SUCCESS [2.801s]
[INFO] persistence ....................................... SUCCESS [3.321s]
[INFO] business .......................................... SUCCESS [0.832s]
[INFO] service ........................................... SUCCESS [0.694s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.168s
[INFO] Finished at: Tue Jan 22 12:09:48 PST 2013
[INFO] Final Memory: 18M/50M
[INFO] ------------------------------------------------------------------------

and each one of these modules generate a jar file.

Question: How can I combine them into one babybird.war?
I am new to Maven and do not know what to look for to accomplish this task, please provide the pointers

like image 442
daydreamer Avatar asked Jan 22 '13 20:01

daydreamer


1 Answers

That's fairly simple. Create another module named web or similar:

<modules>
    <module>persistence</module>
    <module>business</module>
    <module>service</module>
    <module>web</module>
</modules>

web module should depend on all others:

<dependencies>
    <dependency>
        <groupId>...</groupId>
        <artifactId>persistence</artifactId>
    </dependency>
    ...
</dependencies>

and have war packaging:

<packaging>war</packaging>

You'll also need web.xml in /src/main/webapp/WEB-INF. That's it.

like image 56
Tomasz Nurkiewicz Avatar answered Oct 21 '22 11:10

Tomasz Nurkiewicz