【发布时间】:2013-09-12 13:16:42
【问题描述】:
我的 maven 项目中有 3 个模块,分别用于 jar、war 和 ear 包。当我构建 JAR 文件时,我将一些 XML 文件添加到 META-INF 目录(如 jboss.xml 或 ejb-jar.xml)。 如果我构建 EAR,包中包含 jar 文件,但 META-INF 中没有 XML 文件...
我很困惑,因为我不知道如何更改它。请帮忙
【问题讨论】:
我的 maven 项目中有 3 个模块,分别用于 jar、war 和 ear 包。当我构建 JAR 文件时,我将一些 XML 文件添加到 META-INF 目录(如 jboss.xml 或 ejb-jar.xml)。 如果我构建 EAR,包中包含 jar 文件,但 META-INF 中没有 XML 文件...
我很困惑,因为我不知道如何更改它。请帮忙
【问题讨论】:
最简单的解决方案是将相应的文件放入src/main/application 文件夹。如果是META-INF,您只需将此文件夹添加到src/main/application文件夹,打包后的文件将打包到EAR文件中。
【讨论】:
示例 Maven 项目
<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>
<groupId>fun</groupId>
<artifactId>fun</artifactId>
<version>1.0</version>
<packaging>ear</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<finalName>MyEarFile</finalName>
<version>5</version>
<generatedDescriptorLocation>${basedir}/src/main/application/META-INF</generatedDescriptorLocation>
<modules>
<webModule>
<groupId>fun</groupId>
<artifactId>fun</artifactId>
<uri>fun.war</uri>
<bundleFileName>fun.war</bundleFileName>
<contextRoot>/fun</contextRoot>
</webModule>
</modules>
</configuration>
</plugin> <plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>fun</groupId>
<artifactId>fun</artifactId>
<version>1.0</version>
<type>war</type>
</dependency>
</dependencies>
</project>
【讨论】: