自定义模块位置

下面的例子展示了如何在 EAR 文件的 APP-INF/lib 目录中放置一个库:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
           [...]
           <modules>
             <jarModule>
               <groupId>artifactGroupId</groupId>
               <artifactId>artifactId</artifactId>
               <bundleDir>APP-INF/lib</bundleDir>
             </jarModule>
          </modules>
        </configuration>
      </plugin>
    </plugins>
  </build>

请注意,可以为所有库指定默认捆绑目录。如果 jarModule 没有上面的 bundleDir 属性,则使用默认的。以下是此类配置的示例:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
           [...]
           <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
           <modules>
             <jarModule>
               <groupId>artifactGroupId</groupId>
               <artifactId>artifactId</artifactId>
               <bundleDir>/</bundleDir>
             </jarModule>
          </modules>
        </configuration>
      </plugin>
    </plugins>
  </build>

在上述情况下,jarModules(即库)将放置在 APP-INF/lib 目录中,但指定的工件将放置在 EAR 结构的根目录中。