我正在尝试使用战争中的 maven-ear-plugin 构建一个耳朵(以及一些其他资源,但现在忘记了)。无论如何,我正在尝试使用 ear 插件生成 application.xml 文件。
我的 pom 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<artifactId>my-ear-mvn</artifactId>
<name>My Ear</name>
<description>My Ear</description>
<packaging>ear</packaging>
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
<skinnyWars>true</skinnyWars>
<modules>
<webModule>
<groupId>org.my.app</groupId>
<artifactId>my-web-war</artifactId>
<bundleFileName>my-web.war</bundleFileName>
<uri>my-web</uri>
<context-root>MYWeb</context-root>
</webModule>
...
</modules>
</configuration>
</plugin>
</plugins>
</build>
...
我得到一个如下所示的 application.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>my-ear-mvn</display-name>
<description>My Ear</description>
<module>
<web>
<web-uri>my-web</web-uri>
<context-root>MYWeb</context-root>
</web>
</module>
</application>
到目前为止一切顺利,webModule 元素的 uri 子元素(来自 pom)在 application.xml 中生成 web 元素的相应 web-uri 子元素。但是,当我查看耳朵时,在耳朵的根目录中有一个名为 my-web 的文件,我希望在该文件中看到 my-web.war。果然,如果我把它重命名为战争,我可以打开它,里面包含了我希望在那场战争中看到的一切。
无论如何,我可以解决这个问题吗?谢谢!