<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>
<!-- ......................-->
<name>appollo-ear</name>
<dependencies>
<dependency>
<groupId>cn.edu.zsu.application</groupId>
<artifactId>appollo-ejb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>ejb</type><!-- 这里是ejb,不是jar。否则enterprise application会找不到模块。这个type要跟被引用的工程的packaging属性一致。 -->
</dependency>
</dependencies>
<!--..........................-->
<build>
<finalName>appollo-ear</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<modules>
<ejbModule>
<groupId>cn.edu.zsu.application</groupId>
<artifactId>appollo-ejb</artifactId>
<bundleFileName>appollo-ejb.jar</bundleFileName>
</ejbModule>
</modules>
<version>6</version>
<encoding>${targetEncoding}</encoding> <!-- 在这里这样使用可能会导致maven-ear-plugin抛出空指针异常 -->
<defaultLibBundleDir>lib</defaultLibBundleDir>
</configuration>
</plugin>
</plugins>
</build>
</project>
上文是用maven管理javaee enterprise application,写配置文件的时候需要注意的。
另外我在用eclipse创建maven工程常常忘了创建pom-root工程来包含ear, ejb这些工程。结果常常是打出来的ear包不包含任何的class文件。警醒警醒~~