0

I am building a multi modules project the hierarchy for it as follow :

ParentProject
             |_ WebModule
                        |_src
                            |_main
                                  |_ java
                                  |       |_Some packages here 
                       |_webapp  
             |_EARModule                 
             |_ EJBModule
             |_ JARModule

Mvn clean install command is working perfectly fine and i can find the generated EAR file. Inside the EAR i can see the EJB module and the JAR module are created and compiled as well, but for the web module the WAR is created with correct structure but the class directory is empty !

I am using Maven2 and JAVA7

the parent POM is :

  <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>XXXX</groupId>
    <artifactId>parentModule</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>EJBModule</module>
        <module>EARModule</module>
        <module>JARModule</module>
        <module>WEBModule</module>
    </modules>

    <properties>
            <maven.compiler.source>1.6</maven.compiler.source>
            <maven.compiler.target>1.6</maven.compiler.target>
    </properties>
    <dependencyManagement>

        <dependencies>

            <!--Project dependencies-->

        </dependencies>

    </dependencyManagement>
    <build>
    <pluginManagement>
        <plugins>
            <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                       <artifactId>maven-compiler-plugin</artifactId>
                         <version>3.0</version>
                          <configuration>
                                <source>${maven.compiler.source}</source>
                                <target>${maven.compiler.target}</target>
                              </configuration>
                        </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.9.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.4</version>
            </plugin>
        </plugins>
    </pluginManagement>

     </build>

     </project>

EAR POM :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>ParentModule</artifactId>
        <groupId>XXXX</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
<packaging>ear</packaging>
    <artifactId>EARModule</artifactId>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>

                    <modules>

                        <webModule>
                            <groupId>XXXX</groupId>
                            <artifactId>WebModule</artifactId>
                            <bundleFileName>abc.war</bundleFileName>
                            <contextRoot>/abc</contextRoot>
                        </webModule>
                        <ejbModule>
                            <groupId>XXXX</groupId>
                            <artifactId>EJBModule</artifactId>
                            <bundleFileName>ejbModule.jar</bundleFileName>
                        </ejbModule>
                    </modules>
                    <displayName>theEar</displayName>
                    <generateApplicationXml>true</generateApplicationXml>
                </configuration>
            </plugin>
        </plugins>
    </build>  
    <dependencies>
        <!--some dependencies-->
    </dependencies>

    </project>

WEB app POM :

    <?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>parentModule</artifactId>
        <groupId>XXXX</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>WebModule</artifactId>
    <packaging>war</packaging>

    <name>abc</name>


    <dependencies>
       <!-- some dependencies -->
    </dependencies>
    </project>

Note : These pom files are samples to demonstrate my case.

k.elgohary
  • 403
  • 8
  • 21
  • I don't know if it's related but your `artifactId`s differ. It's called `webModule` (lower case 'w') in the EarModule's dependency list but `WebModule` in the POM. Perhaps Maven is picking up an old artifact from the local repository that happened to match? – Daniel Feb 18 '19 at 12:39
  • This is just samples to show the case .. but no issues from pom files otherwise it won't compiled – k.elgohary Feb 18 '19 at 14:46

1 Answers1

0

The problem was not in the POM files. the actual issue is that i copied source code under src/main/java directory but it was having some compilation issues.

I am using IntelliJ IDE, unfortunately, IntelliJ is not notifying me after copying the source code (even after synchronize the project). So what i did is just right click on the web module then clicked on Build module <'module name'> which shows the compilation error. After rectifying the issues then run mvn clean install I could find the classes get generated in the war.

I hope this help somebody

k.elgohary
  • 403
  • 8
  • 21