I worked it out. I was being an idiot as usual. User error.

Strangely it was producing the EAR file pretty much correctly, even though my 
plugin wasn't configured properly.

I replaced...

<groupId>maven-ear-plugin</groupId>
<artifactId>maven-ear-plugin</artifactId>
with...

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
Then changed...

<includeLibInApplicationXml>true</includeLibInApplicationXml>
to...

<includeInApplicationXml>true</includeInApplicationXml>

Suddenly it did what I asked. Clever that.

-----Original Message-----
From: Stuart Stephen [mailto:stuart.step...@tracegroup.com] 
Sent: 23 August 2012 16:01
To: users@maven.apache.org
Subject: maven-ear-plugin is not including jarModule into application.xml

Hi,

[This question is also on StackOverflow: 
http://stackoverflow.com/questions/12093346/maven-ear-plugin-is-not-including-jarmodule-into-application-xml]

I've been following the example on the maven-ear-plugin site that [shows how to 
add third-party libraries to the generated application.xml][1]. However, it 
does not appear to be working as I expected. Similarly the web module 
[contextRoot][2] is being ignored.

According to the [documentation][3] what I am trying to do should be entirely 
possible.

The context root of a Web module might be customized using the contextRoot 
parameter.
Please note that third party libraries (i.e. JarModule) are not included in the 
generated application.xml (only ejb-client should be included in a java entry). 
However, a jar dependency could be included in the generated application.xml by 
specifying the includeInApplicationXml flag.

I have the following output when it executes the build in my application.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
    "http://java.sun.com/dtd/application_1_3.dtd";>
<application>
  <display-name>MyApp.EAR</display-name>
  <module>
    <ejb>MyApp.jar</ejb>
  </module>
  <module>
    <web>
      <web-uri>MyApp.war</web-uri>
      <context-root>/MyApp.Web</context-root>
    </web>
  </module>
</application>

>From the following maven configuraton (pom.xml).
...
<modelVersion>4.0.0</modelVersion>
<groupId>com.blah</groupId>
<artifactId>MyApp.EAR</artifactId>
<version>1.0</version>
<packaging>ear</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>maven-ear-plugin</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <applicationName>MyApp</applicationName>
                <modules>
                    <ejbModule>
                        <groupId>com.blah</groupId>
                        <artifactId>MyApp.EJB</artifactId>
                    </ejbModule>
                    <webModule>
                        <groupId>com.blah</groupId>
                        <artifactId>MyApp.Web</artifactId>
                        <contextRoot>MyApp</contextRoot>
                    </webModule>
                    <jarModule>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-simple</artifactId>
                        
<includeLibInApplicationXml>true</includeLibInApplicationXml>
                    </jarModule>
                </modules>
                <archive>
                    <manifestEntries>
                        
<WebLogic-Application-Version>${weblogic.version}</WebLogic-Application-Version>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <!-- web and ejb modules -->
    <dependency>
        <groupId>com.blah</groupId>
        <artifactId>MyApp.EJB</artifactId>
        <version>1.0</version>
        <type>ejb</type>
    </dependency>
    <dependency>
        <groupId>com.blah</groupId>
        <artifactId>MyApp.Web</artifactId>
        <version>1.0</version>
        <type>war</type>
    </dependency>
</dependencies>
...

It is immediately obvious that the application.xml is not being generated as I 
intended.
1. The contextRoot supplied is not correct in the application.xml, instead the 
default name of MyApp.Web is output instead of the specified MyApp.
2. The org.slf4j jarModule specified is missing entirely from the 
application.xml.
What am I doing wrong?
Debug from Maven is shown below.

[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          
org.apache.maven.plugins:maven-ear-plugin:2.4.2:generate-application-xml 
(default-generate-application-xml)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?> <configuration>
  <description>${project.description}</description>
  <displayName>${project.artifactId}</displayName>
  <encoding default-value="UTF-8"/>
  
<generatedDescriptorLocation>${project.build.directory}</generatedDescriptorLocation>
  <includeLibInApplicationXml default-value="false"/>
  <project>${project}</project>
  <version default-value="1.3"/>
  
<workDirectory>${project.build.directory}/${project.build.finalName}</workDirectory>
</configuration>

  [1]: 
http://maven.apache.org/plugins/maven-ear-plugin/examples/including-a-third-party-library-in-application-xml.html
  [2]: http://maven.apache.org/plugins/maven-ear-plugin/modules.html#webModule
  [3]: 
http://maven.apache.org/plugins/maven-ear-plugin/usage.html#Advanced_ConfigurationDisclaimer:
 
 
The contents of this E-mail plus any attachment is intended for the use of the 
addressee only and is confidential, proprietary and may be privileged. It will 
not be binding upon Trace Group or any group company (Trace).  Opinions, 
conclusions, contractual obligations and other information in this message in 
so far as they relate to the official business of Trace must be specifically 
confirmed in writing by Trace. If you are not the intended recipient you must 
not copy this message or attachment, use or disclose the contents to any other 
person, but are requested to telephone or E-mail the sender and delete the 
message and any attachment from your system. Trace takes all reasonable 
precautions to ensure that no virus or defect is transmitted via this e mail, 
however Trace accepts no responsibility for any virus or defect that might 
arise from opening this E-mail or attachments.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.orgDisclaimer: 
 
The contents of this E-mail plus any attachment is intended for the use of the 
addressee only and is confidential, proprietary and may be privileged. It will 
not be 
binding upon Trace Group or any group company (Trace).  Opinions, conclusions, 
contractual obligations and other information in this message in so far as they 
relate to 
the official business of Trace must be specifically confirmed in writing by 
Trace. If you 
are not the intended recipient you must not copy this message or attachment, 
use or 
disclose the contents to any other person, but are requested to telephone or 
E-mail 
the sender and delete the message and any attachment from your system. Trace 
takes all reasonable precautions to ensure that no virus or defect is 
transmitted via 
this e mail, however Trace accepts no responsibility for any virus or defect 
that might 
arise from opening this E-mail or attachments.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to