Java 使用maven为同一项目构建war和ear文件

Java 使用maven为同一项目构建war和ear文件,java,maven-2,ejb,maven-plugin,Java,Maven 2,Ejb,Maven Plugin,在我的项目中,我有与web相关的东西(JSP、控制器等等)和EJB bean。 现在我需要用web相关的东西构建war文件,并将其部署到tomcat和 需要为EJB构建ear文件,并使用maven将其部署到jboss中 有人能给我建议一个相应修改pom.xml的解决方案吗 谢谢你, Pavan您需要使用配置文件。在pom.xml中的每个概要文件中,您可以指定您喜欢的任何配置。当您运行mvn-PyourProfileName时,将应用该配置。最好的方法是将您的项目拆分为多个子项目:一个构建EJB,


在我的项目中,我有与web相关的东西(JSP、控制器等等)和EJB bean。
现在我需要用web相关的东西构建war文件,并将其部署到tomcat和
需要为EJB构建ear文件,并使用maven将其部署到jboss中

有人能给我建议一个相应修改pom.xml的解决方案吗

谢谢你,

Pavan

您需要使用配置文件。在pom.xml中的每个概要文件中,您可以指定您喜欢的任何配置。当您运行mvn-PyourProfileName时,将应用该配置。

最好的方法是将您的项目拆分为多个子项目:一个构建EJB,一个构建WAR,第三个将它们打包在一起。这在中进行了描述,并在中提供了一个示例。

您可以将其全部放在一个pom.xml中:

首先,制作/使用stadard“war”pom.xml

创建文件夹“src/main/application/META-INF”

将ear相关文件,如“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>

src/main/application
真的
META-INF/*.xml
此外:

    <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>

maven antrun插件
包裹
跑
提示: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>

三十、 耳朵
三十、 战争
XXX

非常感谢您的回复。但如果我们使用概要文件,我们需要多次运行mvn命令。那么,还有什么我们可以做的吗?不,我们不能将源代码分割成子项目。@Pawan-那就不要使用Maven。我是认真的:如果你不想按照开发人员的意图使用它,Maven会让你的生活变得非常困难。您可能会更喜欢使用Ant,使用Maven Ant任务来检索依赖项。您能详细介绍一下在这种情况下使用Maven和Ant任务吗?@Pawan-这都在文档中:祝您好运。谢谢您的参考链接。