当我上传.EAR格式的应用程序时,DevServer期望.WAR

时间:2017-08-31 07:43:53

标签: java maven

这个应用程序是在15年前建成的,我想。客户已经寻求升级/修改此应用程序,我不知道。

我已经构建了一些POM.xml脚本。当我尝试在开发服务器上传它时,我希望我上传的.WAR内有一个.EAR文件。

这是我的pom.xml脚本。请提出一些修改建议。

<groupId>itaras</groupId>
<artifactId>itaras</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>ear</packaging>
<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
  <dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>1.0</version>
    <type>war</type>
  </dependency>
</dependencies>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.2</version>
    </plugin>
    <plugin>
      <artifactId>maven-ear-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <finalName>MyEarFile</finalName>
        <version>5</version>
        <generatedDescriptorLocation>$D:/itaras/ITARAS_Branch_3Aug2017/itaras/WebContent</generatedDescriptorLocation>
        <modules>
          <webModule>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <uri>appITARAS.war</uri>
            <bundleFileName>appITARAS.war</bundleFileName>
            <contextRoot>/ITARAS</contextRoot>
          </webModule>
        </modules>
      </configuration>
    </plugin>          
  </plugins>
</build>

1 个答案:

答案 0 :(得分:0)

你需要像这样的父母:

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

  <groupId>itaras</groupId>
  <artifactId>itaras</artifactId>
  <version>1.0-SNAPSHOT</version>      
  <packaging>pom</packaging>

  <modules>
    <module>itaras-ear</module>
    <module>itaras-war</module>
  </modules>

</project>

然后你将有一个war项目,它是父项的子/模块。这将是您现有的项目,如:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>itaras</groupId>
    <artifactId>itaras</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>itaras-war</artifactId>
  <packaging>war</packaging>
.....

然后你将有一个耳朵项目,它将战争项目作为一个依赖项,如:

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>itaras</groupId>
    <artifactId>itaras</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>itaras-ear</artifactId>
  <packaging>ear</packaging>

  <dependencies>
   <dependency>
     <groupId>itaras</groupId>
     <artifactId>itaras-war</artifactId>
     <version>${project.version}</version>
   </dependency>
  </dependencies>