maven-ear-plugin< packagingIncludes>不包括项目文件

mzmfm0qo  于 2022-11-02  发布在  Maven
关注(0)|答案(1)|浏览(193)

My ear项目具有以下结构:

我的pom.xml是这样的:

<plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <version>2.10</version>
    <configuration>
      <earSourceIncludes>META-INF/*</earSourceIncludes>
      <packagingIncludes>META-INF/*,**/*.war</packagingIncludes>
      <version>7</version>
                <modules>
                    <webModule>
                        <groupId>com.ex</groupId>
                        <artifactId>one</artifactId>
                    </webModule>
                </modules>
      <generateApplicationXml>false</generateApplicationXml>  
    </configuration>
  </plugin>

我想要的是在我的ear文件中包含文件夹META-INF的内容,该文件夹位于ear文件根目录下一个名为META-INF的类似文件夹中。
我已经尝试了earSourceIncludes和packagingIncludes的多种组合,但都没有成功:我的ear文件有链接的application .war,这很好,还有一个META-INF文件夹,其中没有我需要的东西,而是一个预生成的MANIFEST.MF文件和一个带有pom的maven文件夹。
我不知道我是否需要earSourceIncludes。老实说,我不知道为什么它不能与packagingIncludes参数一起工作。

yxyvkwin

yxyvkwin1#

您可以使用maven-resource-plugin将META-INF文件夹的内容包含到根META-INF文件夹中。请参阅以下内容。

项目基目录-${project.basedir}
EAR根目录-${project.rootdir}

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <id>copy-resources</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>                         
                <outputDirectory>${project.build.directory}/${project.build.finalName}/META-INF</outputDirectory>
                <resources>
                    <resource>                      
                        <directory>${project.basedir}/META-INF</directory>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

相关问题