You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Roy Brokvam <ro...@abeldrm.com> on 2007/07/31 19:57:33 UTC

[m2] Correct use of ejb/ejb3 dependency type and ejbModule/ejb3Module plugin configuration in ear project?

I've spent some time trying to understand how to assemble EJB3s into EAR
applications, reading the (very scarce...) plugin documentation and
searching in the mailing archive, but I still don't get it. My understanding
is that the first EAR POM should work, but it doesn't (I've stripped it to
the bones -.no client, no WAR, no main POM project, no JUnit tests). The two
troublesome sections are prefixed with asterisks:

 

EAR project pom.xml:

<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.abeldrm.dbtest</groupId>

    <artifactId>dbtest-ear</artifactId>

    <packaging>ear</packaging>

    <version>1.0-SNAPSHOT</version>

    <name>DB Test EAR</name>

    <url>http://maven.apache.org</url>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-ear-plugin</artifactId>

                <configuration>

                    <version>5</version>

*                    <modules>

*                        <ejb3Module>

*                            <groupId>com.abeldrm.dbtest</groupId>

*                            <artifactId>dbtest-ejb</artifactId>

*
<bundleFileName>dbtest-ejb.ejb3</bundleFileName>

*                        </ejb3Module>

*                    </modules>

                </configuration>

            </plugin>

        </plugins>

    </build>

    <dependencies>

        <dependency>

            <groupId>com.abeldrm.dbtest</groupId>

            <artifactId>dbtest-ejb</artifactId>

            <version>1.0-SNAPSHOT</version>

*            <type>ejb3</type>

            <scope>compile</scope>

        </dependency>

    </dependencies>

</project>

 

EJB3 project pom.xml:

<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.abeldrm.dbtest</groupId>

    <artifactId>dbtest-ejb</artifactId>

    <packaging>ejb</packaging>

    <version>1.0-SNAPSHOT</version>

    <name>DB Test EJB</name>

    <url>http://maven.apache.org</url>

    <build>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>2.0</version>

                <configuration>

                    <source>1.6</source>

                    <target>1.6</target>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-ejb-plugin</artifactId>

                <configuration>

                    <ejbVersion>3.0</ejbVersion>

                </configuration>

            </plugin>

        </plugins>

    </build>

    <dependencies>

        <dependency>

            <groupId>javaee</groupId>

            <artifactId>javaee-api</artifactId>

            <version>5</version>

            <scope>provided</scope>

        </dependency>

    </dependencies>

</project>

 

 

Whatever I do with the <modules> section of the plugin configuration, Maven
complains about missing artifact
'com.abeldrm.dbtest:dbtest-ejb:ejb3:1.0-SNAPSHOT'.

 

The only 'solution' I have found to this problem, is to change the
dependency <type>ejb3</type> to <type>ejb</type>. But then Maven complains
that 'Artifact[com.abeldrm.dbtest:dbtest-ejb:ejb3] is not a dependency of
the project'.

 

Finally, if I remove the <modules> section altogether (or alternatively,
rename <ejb3Module> to <ejbModule> and remove the <bundleFileName> section),
it seems to work - at least it deploys on the appserver...

 

So, what did I do wrong in the first place? Or, if my final attempt is the
correct one (staying away from both <type>ejb3</type> and <ejb3Module>) -
what's the point of <type>ejb3</type> and <ejb3Module>?

 

 

 

 

 

 


Re: [m2] Correct use of ejb/ejb3 dependency type and ejbModule/ejb3Module plugin configuration in ear project?

Posted by Stephane Nicoll <st...@gmail.com>.
ejb3 module was deprecated a long time ago. You should use the ejb
plugin and configure it to use the ejb3 version with an ejb packaging.
Then you should use the "ejb" type in your dependencies and the
ejbModule in your custom EAR configuration.

HTH,
Stéphane


On 7/31/07, Roy Brokvam <ro...@abeldrm.com> wrote:
> I've spent some time trying to understand how to assemble EJB3s into EAR
> applications, reading the (very scarce...) plugin documentation and
> searching in the mailing archive, but I still don't get it. My understanding
> is that the first EAR POM should work, but it doesn't (I've stripped it to
> the bones -.no client, no WAR, no main POM project, no JUnit tests). The two
> troublesome sections are prefixed with asterisks:
>
>
>
> EAR project pom.xml:
>
> <?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/maven-v4_0_0.xsd">
>
>     <modelVersion>4.0.0</modelVersion>
>
>     <groupId>com.abeldrm.dbtest</groupId>
>
>     <artifactId>dbtest-ear</artifactId>
>
>     <packaging>ear</packaging>
>
>     <version>1.0-SNAPSHOT</version>
>
>     <name>DB Test EAR</name>
>
>     <url>http://maven.apache.org</url>
>
>     <build>
>
>         <plugins>
>
>             <plugin>
>
>                 <groupId>org.apache.maven.plugins</groupId>
>
>                 <artifactId>maven-ear-plugin</artifactId>
>
>                 <configuration>
>
>                     <version>5</version>
>
> *                    <modules>
>
> *                        <ejb3Module>
>
> *                            <groupId>com.abeldrm.dbtest</groupId>
>
> *                            <artifactId>dbtest-ejb</artifactId>
>
> *
> <bundleFileName>dbtest-ejb.ejb3</bundleFileName>
>
> *                        </ejb3Module>
>
> *                    </modules>
>
>                 </configuration>
>
>             </plugin>
>
>         </plugins>
>
>     </build>
>
>     <dependencies>
>
>         <dependency>
>
>             <groupId>com.abeldrm.dbtest</groupId>
>
>             <artifactId>dbtest-ejb</artifactId>
>
>             <version>1.0-SNAPSHOT</version>
>
> *            <type>ejb3</type>
>
>             <scope>compile</scope>
>
>         </dependency>
>
>     </dependencies>
>
> </project>
>
>
>
> EJB3 project pom.xml:
>
> <?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/maven-v4_0_0.xsd">
>
>     <modelVersion>4.0.0</modelVersion>
>
>     <groupId>com.abeldrm.dbtest</groupId>
>
>     <artifactId>dbtest-ejb</artifactId>
>
>     <packaging>ejb</packaging>
>
>     <version>1.0-SNAPSHOT</version>
>
>     <name>DB Test EJB</name>
>
>     <url>http://maven.apache.org</url>
>
>     <build>
>
>         <plugins>
>
>             <plugin>
>
>                 <groupId>org.apache.maven.plugins</groupId>
>
>                 <artifactId>maven-compiler-plugin</artifactId>
>
>                 <version>2.0</version>
>
>                 <configuration>
>
>                     <source>1.6</source>
>
>                     <target>1.6</target>
>
>                 </configuration>
>
>             </plugin>
>
>             <plugin>
>
>                 <groupId>org.apache.maven.plugins</groupId>
>
>                 <artifactId>maven-ejb-plugin</artifactId>
>
>                 <configuration>
>
>                     <ejbVersion>3.0</ejbVersion>
>
>                 </configuration>
>
>             </plugin>
>
>         </plugins>
>
>     </build>
>
>     <dependencies>
>
>         <dependency>
>
>             <groupId>javaee</groupId>
>
>             <artifactId>javaee-api</artifactId>
>
>             <version>5</version>
>
>             <scope>provided</scope>
>
>         </dependency>
>
>     </dependencies>
>
> </project>
>
>
>
>
>
> Whatever I do with the <modules> section of the plugin configuration, Maven
> complains about missing artifact
> 'com.abeldrm.dbtest:dbtest-ejb:ejb3:1.0-SNAPSHOT'.
>
>
>
> The only 'solution' I have found to this problem, is to change the
> dependency <type>ejb3</type> to <type>ejb</type>. But then Maven complains
> that 'Artifact[com.abeldrm.dbtest:dbtest-ejb:ejb3] is not a dependency of
> the project'.
>
>
>
> Finally, if I remove the <modules> section altogether (or alternatively,
> rename <ejb3Module> to <ejbModule> and remove the <bundleFileName> section),
> it seems to work - at least it deploys on the appserver...
>
>
>
> So, what did I do wrong in the first place? Or, if my final attempt is the
> correct one (staying away from both <type>ejb3</type> and <ejb3Module>) -
> what's the point of <type>ejb3</type> and <ejb3Module>?
>
>
>
>
>
>
>
>
>
>
>
>
>
>


-- 
Large Systems Suck: This rule is 100% transitive. If you build one,
you suck" -- S.Yegge

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