I have Java 6 Enterprise project (WAR) in Maven3 created base on
- http://www.sonatype.com/books/mvnex-book/reference/multimodule-web-spring.html
- http://www.znetdevelopment.com/blogs/2009/02/18/j2ee-project-structures
with this structure:
- EnterpriseProject (Super POM)
- ep-model (produces JAR)
- ep-persist (produces JAR)
- ep-service (produces JAR)
- ep-ui (produces JAR)
- ep-webapp (puts it all together and produces WAR)
with dependencies (->):
ep-webapp -> ep-ui -> ep-model
-> ep-service -> ep-model
-> ep-persist -> ep-model
When I run Enterprise Project goal "package", war is created in EnterpriseProject\ep-webapp\target\ and this war contains all needed libraries: ep-model, ep-persist, ep-service, ep-ui.
Q1) Is this solutions right?
Q2) How should I add additional modules (how set dependencies)?
- ep-common (produces JAR)
- ep-ws (webservices; produces JAR)
Should I only add ep-common dependency into ep-weapp pom (just for adding ep-common lib to war) or everywhere where I use ep-common?
ep-webapp -> ep-ui -> ep-model
-> ep-service -> ep-model
-> ep-persist -> ep-model
-> ep-common
-> ep-ws
Thanks a lot for tips
My present solution: EnterpriseProject Super pom:
<modelVersion>4.0.0</modelVersion>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Enterprise Project</name>
<modules>
<module>../ep-model</module>
<module>../ep-persist</module>
<module>../ep-service</module>
<module>../ep-ui</module>
<module>../ep-webapp</module>
</modules>
ep-webapp pom:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ep/pom.xml</relativePath>
</parent>
<artifactId>ep-webapp</artifactId>
<packaging>war</packaging>
<name>webapp</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-ui</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
ep-ui pom:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ep/pom.xml</relativePath>
</parent>
<artifactId>ep-ui</artifactId>
<packaging>jar</packaging>
<name>ui</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-service</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
ep-model pom:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ep/pom.xml</relativePath>
</parent>
<artifactId>ep-model</artifactId>
<packaging>jar</packaging>
<name>model</name>
ep-service pom:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ep/pom.xml</relativePath>
</parent>
<artifactId>ep-service</artifactId>
<packaging>jar</packaging>
<name>service</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-persist</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
ep-persist pom:
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ep</groupId>
<artifactId>enterprise-project</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../ep/pom.xml</relativePath>
</parent>
<artifactId>ep-persist</artifactId>
<packaging>jar</packaging>
<name>persist</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ep-model</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>