maven-ear-plugin忽略模块的解包选项

时间:2011-04-06 09:25:31

标签: java java-ee maven ear

我有一个带有几个模块(jars& ejb)的Java EE 6 EAR项目。使用maven-ear-plugin组装EAR文件,我基本上希望所有工件被打包/未爆炸:

来自父文件的pom.xml

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-ear-plugin</artifactId>
  <version>2.5</version>
  <inherited>true</inherited>
  <configuration>
    <encoding>UTF-8</encoding>
    <version>5</version>
    <generateApplicationXml>true</generateApplicationXml>
    <defaultLibBundleDir>lib</defaultLibBundleDir>
    <archive>
      <manifestEntries>
        <app-version-info>${app-version-info}</app-version-info>
      </manifestEntries>
    </archive>
  </configuration>
</plugin>

来自ear文件的pom.xml

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <finalName>heap-poc</finalName>
          <modules>
            <jarModule>
              <groupId>com.example.heap</groupId>
              <artifactId>poc-common</artifactId>
              <bundleFileName>poc-common.jar</bundleFileName>
              <unpack>true</unpack>
              <includeInApplicationXml>true</includeInApplicationXml> 
            </jarModule>
            <jarModule>
              <groupId>com.example.heap</groupId>
              <artifactId>poc-persistence</artifactId>
              <bundleFileName>poc-persistence.jar</bundleFileName>
              <includeInApplicationXml>true</includeInApplicationXml> 
            </jarModule>
            <ejbModule>
              <groupId>com.example.heap</groupId>
              <artifactId>poc-business</artifactId>
              <unpack>false</unpack>
              <bundleFileName>poc-business.jar</bundleFileName>
            </ejbModule>
          </modules>
        </configuration>
      </plugin>
    </plugins>
  </build>

问题是described unpack-switch似乎完全被忽略了:

  • poc-common.jar(unpack = true)已打包
  • poc-persistence.jar(没有解压缩定义)打包
  • poc-business.jar(unpack = false)爆炸

我正在使用Eclipse Helios / m2eclipse,但根据我的理解,对于这个问题,这应该不重要。

有人能把我推向正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我错误地认为Eclipse 负责此问题。事实上,来自命令行的maven做了它应该做的事情,它只是“只是”m2-eclipse和jboss-tools的相当复杂的集成,似乎忽略了有问题的设置。

mvn package完全做了它应该做的事情: - )

整整一周将基于ant的Java EE 5项目迁移到maven和Java EE 6教会了我,Eclipse中JBven上的Maven与命令行上的Maven有很大的不同......