我有一个应用程序的EAR,我需要用我自己的代码打包成WAR。有没有一个Maven插件可以帮助我将WAR放入EAR中?如何在EAR中添加WAR与Maven
手动过程是将WAR放入EAR中并将模块添加到application.xml。我想自动化。编辑:小澄清 - WAR项目使用maven但是对于EAR我只有二进制文件没有更多。
我有一个应用程序的EAR,我需要用我自己的代码打包成WAR。有没有一个Maven插件可以帮助我将WAR放入EAR中?如何在EAR中添加WAR与Maven
手动过程是将WAR放入EAR中并将模块添加到application.xml。我想自动化。编辑:小澄清 - WAR项目使用maven但是对于EAR我只有二进制文件没有更多。
添加WAR作为依赖关系,并使用maven ear plugin。然后使用ear:generate-application-xml目标,最后使用ear:ear目标。
我会创建一个新的模块,它有<packaging>ear</packaging>
。
在依赖此耳模块,包括你的war
模块:
<dependency>
<groupId>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<version>your-war-version</version>
<type>war</type>
</dependency>
在构建插件,这款耳塞模块
现在,包括Maven的耳插件,例如像:
<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>com.your.group.id</groupId>
<artifactId>your-war-artifact</artifactId>
<uri>YouWarFile.war</uri>
<bundleFileName>YouWarFile.war</bundleFileName>
<contextRoot>/appname</contextRoot>
</webModule>
</modules>
</configuration>
</plugin>
您可以根据需要更改webModule
的特定配置值。
现在创建一个父模块(与<packaging>pom</packaging>
),并添加战争模块和耳模块。确保你正确地设置了战争和耳朵模块的<parent>
。
当你为这个新父母运行mvn package
时,战争文件将由war模块构建,ear文件(包含战争)将由ear模块构建。
我是否必须将WAR作为依赖项添加到EAR pom.xml中?它将如何知道我的WAR在web模块中的位置? – Tushar 2012-10-25 13:31:43
你试过了吗?如上所述,您需要耳机模块的依赖性。 maven-ear-plugin不需要war文件的确切位置/路径,因为它将其称为maven工件(使用webModule元素中指定的groupId和artifactId)。 – joelittlejohn 2012-10-26 11:05:01
@joelittlejohn为什么我需要两次声明神器“你的战争神器”?一旦进入依赖部分,并再次进入'webModule'部分?你能解释一下吗? – Geek 2016-07-11 13:02:09
也许我错过了一些东西,但我不知道如何使用Maven耳塞。问题是我没有该EAR的来源。 – stalker 2011-03-02 12:13:41
如果您有EAR文件,您可以将其解压缩:http://maven.apache.org/plugins/maven-ear-plugin/examples/unpacking-a-module.html,然后添加战争,更改application.xml并将其打包再次。 – 2011-03-02 12:24:22