Maven - 如何在打包时创建ejb客户端

时间:2015-07-15 19:22:53

标签: maven-3

我已经将eclipse基础ejb项目转换为maven模块。它以Web应用程序布局(由Tomee首选)构建。因此,在pom.xml中,打包类型设置为war,maven正确生成war文件。但是,在打包战争时,我还没有成功地创建一个ejb-client jar。我将它添加到pom.xml中,但它似乎没有做任何事情:

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>BossClient</id>
                    <phase>compile</phase>
                    <configuration>
                        <ejbVersion>3.1</ejbVersion>
                        <generateClient>true</generateClient>
                        <clientIncludes>
                            <clientInclude>/com/**</clientInclude>
                        </clientIncludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
      </plugins>
    </build>

知道如何在打包战争时让maven生成ejb-client吗?

2 个答案:

答案 0 :(得分:3)

maven-ejb-plugin的配置可以简化为:

<project>
   <groupId>..</groupId>
   <artifactId>..</artifactId>

   <packaging>ejb</packagin>

   <build>
     <pluginManagement>
       <plugins>
         <artifactId>maven-ejb-plugin</artifactId>
         <version>2.5.1</version>
         <configuration>
           <ejbVersion>3.1</ejbVersion>
           <generateClient>true</generateClient>
           <clientIncludes>
             <clientInclude>/com/**</clientInclude>
           </clientIncludes>
         </configuration>
       </plugins>
     <pluginManagement>
   </build>
..
</project>

基于default life cycle binding,不需要创建执行块,因为maven-ejb-plugin已经是生命周期的一部分。因此,只需将配置与您的需求保持一致。

此外,你应该考虑制作一个包含ejb部分的单独模块,你不应该将war和ejb部分组合在一个模块中。

答案 1 :(得分:1)

在删除阶段并将ejb的目标添加到maven-ejb-plugin之后,我能够让它工作。

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>BossClient</id>
                    <configuration>
                        <ejbVersion>3.1</ejbVersion>
                        <generateClient>true</generateClient>
                        <clientIncludes>
                            <clientInclude>/com/**</clientInclude>
                        </clientIncludes>
                    </configuration>
                    <goals>
                        <goal>ejb</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>