簡體   English   中英

使用 maven 為同一項目構建 war 和 ear 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM