[英]Building both war and ear files for same project using maven
在我的項目中,我同時擁有與 Web 相關的東西(jsps、控制器、..)和 EJB bean。
現在我需要用 web 相關的東西構建 war 文件並將它部署到 tomcat 和
需要為EJB 構建ear 文件並使用maven 將其部署到jboss 中。
任何人都可以建議我相應地修改 pom.xml 的解決方案。
謝謝,
帕萬
最好的方法是將您的項目拆分為多個子項目:一個構建 EJB,一個構建 WAR,第三個將它們打包在一起。 這在Maven: The Complete Reference 中進行了描述,並在Better Builds with Maven 中提供了一個示例。
您需要使用配置文件。 在 pom.xml 中的每個配置文件中,您可以指定您喜歡的任何配置。 當您運行 mvn -PyourProfileName 時,將應用該配置。
你可以把它全部放在一個 pom.xml 中:
首先,制作/使用您的標准“戰爭” pom.xml。
創建文件夾“src/main/application/META-INF”。
將耳朵相關文件,如“application.xml”(強制)、“jboss-app.xml”和/或“jboss-deployment-structure.xml”放在那里。
展開你的 pom.xml:
<resources>
<resource>
<directory>src/main/application</directory>
<filtering>true</filtering>
<includes>
<include>META-INF/*.xml</include>
</includes>
</resource>
</resources>
並進一步:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<ear
destfile="${project.build.directory}/${project.build.finalName}.ear"
appxml="${project.build.outputDirectory}/META-INF/application.xml">
<fileset dir="${project.build.outputDirectory}"
includes="META-INF/*.xml" excludes="META-INF/application.xml" />
<fileset dir="${project.build.directory}"
includes="${project.build.finalName}.war" />
</ear>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
提示:application.xml 應如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" id="Application_ID" version="6">
<display-name>XXX.ear</display-name>
<module>
<web>
<web-uri>XXX.war</web-uri>
<context-root>XXX</context-root>
</web>
</module>
</application>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.