2012-12-21 22 views
5

Khi tôi triển khai WAR bằng cách sử dụng maven, cuộc chiến mục tiêu (chính xác cùng một) đang được tải lên máy chủ hai lần. Ai đó có thể giải thích điều đó không?Tại sao plugin Apache Tomcat Maven tải lên tệp WAR hai lần?

Tôi đang sử dụng này trên mô-đun của tôi:

clean install org.apache.tomcat.maven:tomcat6-maven-plugin:2.0:redeploy 

Từ Log nộp

[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ mobile-server --- 
[INFO] Packaging webapp 
[INFO] Assembling webapp [mobile-server] in [C:\develope\mobile\mobile-server\target\mobile-server] 
[INFO] Processing war project 
[INFO] Copying webapp resources [C:\develope\mobile\mobile-server\src\main\webapp] 
[INFO] Webapp assembled in [241 msecs] 
[INFO] Building war: C:\develope\mobile\mobile-server\target\mobile-server.war 
[INFO] 
[INFO] <<< tomcat6-maven-plugin:2.0:redeploy (default-cli) @ mobile-server <<< 
[INFO] 
[INFO] --- tomcat6-maven-plugin:2.0:redeploy (default-cli) @ mobile-server ---  
[INFO] Deploying war to http://myserver.eu/pra-mobile-server 
Uploading: http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true 
Uploaded: http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true (12678 KB at 49.3 KB/sec) 

Uploading: http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true 
Uploaded: http://myserver.eu/manager-test/deploy?path=%2Fmobile-server&update=true (12678 KB at 50.9 KB/sec) 

pom.xml chính của tôi trông như thế này:

<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/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<parent> 
    <groupId>eu.company.prj.pramobile</groupId> 
    <artifactId>mobile-parent</artifactId> 
    <relativePath>../mobile-parent/pom.xml</relativePath> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<artifactId>mobile-server</artifactId> 
<packaging>war</packaging> 
<name>mobile server</name> 

<properties> 
    <version.standard.taglibs>1.1.2</version.standard.taglibs> 
</properties> 


<repositories> 
     <repository> 
      <id>com.springsource.repository.libs-milestone</id> 
      <name>SpringSource Enterprise Bundle Repository - libs</name> 
      <url>http://repo.springsource.org/libs-milestone/</url> 
     </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>mobile-test</artifactId> 
     <version>${project.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>mobile-common</artifactId> 
     <version>${project.version}</version> 
    </dependency> 


    <!-- Import Spring dependencies, these are either from community or versions 
     certified in WFK2 --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-asm</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-web</artifactId> 
     <version>${version.spring}</version> 
    </dependency> 


    <dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
     <version>1.7</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.4</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.1.2</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-httpclient</groupId> 
     <artifactId>commons-httpclient</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sf.ehcache</groupId> 
     <artifactId>ehcache</artifactId> 
     <version>1.6.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springmodules</groupId> 
     <artifactId>spring-modules-cache</artifactId> 
     <version>0.8a</version> 
     <!-- Unfortunately design of spring cache module is not the best - we 
      need to exclude not necessary dependencies --> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>gigaspaces</groupId> 
       <artifactId>gigaspaces-ce</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>jsk-lib</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>jsk-platform</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>mahalo</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>reggie</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>start</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>boot</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jini</groupId> 
       <artifactId>webster</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>commons-attributes</groupId> 
       <artifactId>commons-attributes-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>commons-attributes</groupId> 
       <artifactId>commons-attributes-compiler</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>javassist</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>jboss-cache</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>jboss-common</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>jboss-jmx</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>jboss-minimal</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jboss</groupId> 
       <artifactId>jboss-system</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jcs</groupId> 
       <artifactId>jcs</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>jgroups</groupId> 
       <artifactId>jgroups-all</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>geronimo-spec</groupId> 
       <artifactId>geronimo-spec-jta</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>xpp3</groupId> 
       <artifactId>xpp3_min</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>xjavadoc</groupId> 
       <artifactId>xjavadoc</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>opensymphony</groupId> 
       <artifactId>oscache</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>ehcache</groupId> 
       <artifactId>ehcache</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.quartz-scheduler</groupId> 
     <artifactId>quartz</artifactId> 
     <version>${version.quartz}</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.1</version> 
    </dependency> 

    <!--mockito for test--> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.9.5</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.kubek2k</groupId> 
     <artifactId>springockito</artifactId> 
     <version>1.0.4</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.kubek2k</groupId> 
     <artifactId>springockito-annotations</artifactId> 
     <version>1.0.5</version> 
     <scope>test</scope> 
    </dependency> 

    <!--testing MVC controllers--> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test-mvc</artifactId> 
     <version>1.0.0.M2</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>3.1.0.RELEASE</version> 
    </dependency> 

</dependencies> 

<build> 

    <finalName>mobile-server</finalName> 

    <plugins> 
     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>maven-jetty-plugin</artifactId> 
      <version>6.1.10</version> 
      <configuration> 
       <jettyEnvXml>${basedir}/src/test/resources/jetty-env.xml</jettyEnvXml> 
       <!-- Solves locked problem for JSP while jetty is running --> 
       <webDefaultXml>src/test/resources/webdefault.xml</webDefaultXml> 
       <stopKey>0</stopKey> 
       <stopPort>8001</stopPort> 
       <scanIntervalSeconds>5</scanIntervalSeconds> 
       <systemProperties> 
        <systemProperty> 
         <name>org.apache.commons.logging.Log</name> 
         <value>org.apache.commons.logging.impl.SimpleLog</value> 
        </systemProperty> 

        <systemProperty> 
         <name>log4j.configurationFile</name> 
         <value>file:${project.basedir}/src/main/resources/log4j.xml</value> 
        </systemProperty> 

       </systemProperties> 

      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>mysql</groupId> 
        <artifactId>mysql-connector-java</artifactId> 
        <version>5.1.9</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
     <!-- Surefire plugin before 2.9 version is buggy --> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.10</version> 
      <configuration> 
       <parallel>true</parallel> 
       <threadCount>10</threadCount> 
       <systemPropertyVariables> 
        <java.awt.headless>true</java.awt.headless> 
       </systemPropertyVariables> 
      </configuration> 
     </plugin> 

     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <!--to avoid maven error message--> 
      <configuration> 
       <packagingExcludes>WEB-INF/web.xml</packagingExcludes> 
      </configuration> 
     </plugin> 

     <!--import objects from schema generation--> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxb2-maven-plugin</artifactId> 
      <version>1.5</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>xjc</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <extension>true</extension> 
       <packageName>eu.company.prj.pra.mobile.server.generated.place1</packageName> 
       <schemaDirectory>src/main/resources/META-INF/schema</schemaDirectory> 
       <outputDirectory>${basedir}/src/main/java/</outputDirectory> 
       <failOnNoSchemas>true</failOnNoSchemas> 
       <clearOutputDir>false</clearOutputDir> 
      </configuration> 
     </plugin> 

     <!-- mvn tomcat plugin alternative - run --> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat6-maven-plugin</artifactId> 
      <version>2.0</version> 
      <configuration>    
       <systemProperties>-Dmaven.tomcat.uriEncoding=UTF-8</systemProperties> 
       <url>${tomcat-maven-plugin.url}</url> 
       <username>${tomcat-maven-plugin.username}</username> 
       <password>${tomcat-maven-plugin.password}</password> 
      </configuration> 
     </plugin> 

     <!-- mvn tomcat plugin alternative - run --> 
     <!--<plugin>--> 
      <!--<groupId>org.codehaus.mojo</groupId>--> 
      <!--<artifactId>tomcat-maven-plugin</artifactId>--> 
      <!--<configuration>--> 
       <!--<contextFile>${basedir}/src/test/resources/tomcat-context.xml</contextFile>--> 
       <!--<url>${tomcat-maven-plugin.url}</url>--> 
       <!--<username>${tomcat-maven-plugin.username}</username>--> 
       <!--<password>${tomcat-maven-plugin.password}</password>--> 
      <!--</configuration>--> 
      <!--<dependencies>--> 
       <!--<dependency>--> 
        <!--<groupId>mysql</groupId>--> 
        <!--<artifactId>mysql-connector-java</artifactId>--> 
        <!--<version>5.1.9</version>--> 
       <!--</dependency>--> 
      <!--</dependencies>--> 
     <!--</plugin>--> 

    </plugins> 
</build> 

CẬP NHẬT pom phụ huynh:

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<groupId>eu.company.prj.mobile</groupId> 
<artifactId>mobile-parent</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 
<name>mobile project parent</name> 

<properties> 
    <version.spring>3.1.1.RELEASE</version.spring> 
    <version.jackson>1.9.11</version.jackson> 
    <version.commons.logging>1.1.1</version.commons.logging> 
    <version.quartz>2.1.6</version.quartz> 
    <slf4j.version>1.5.8</slf4j.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<build> 
    <plugins> 
     <!-- Force Java 6 --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <encoding>${project.build.sourceEncoding}</encoding> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<profiles> 
     just properties with u/p ... 
</profiles> 

Thanks cho bất kỳ gợi ý.

+0

hãy thử xóa plugin của trình cắm và thực thi lại, chỉ để đảm bảo plugin cầu nối không phải là thủ phạm. –

+0

@SajanChandran cảm ơn bạn đã thử, nhưng không có thay đổi – Cabot

+0

Có vấn đề về việc này qua Apache (Tôi đoán từ bạn @Cabot?): [MTOMCAT-195] (https://issues.apache.org/ jira/browse/MTOMCAT-195) Không có lời giải thích nào. – peron

Trả lời

0

Hãy thử và chạy dòng mvn cmd mà không có mục tiêu cài đặt.

0

Gần đây, tôi gặp phải vấn đề tương tự trong khi tải chiến tranh lên máy chủ thử nghiệm. Tôi đã thực hiện một số nỗ lực để tìm câu trả lời cho câu hỏi này trên Internet mà không thành công. Tình cờ, tôi thấy vấn đề của chúng tôi trong trường hợp của tôi và tôi chia sẻ nó ở đây bởi vì có lẽ điều này có thể giúp một người nào đó (nhưng, tôi không chắc chắn nếu đây là trường hợp của bạn).

Vì vậy, trong trường hợp của tôi, việc tải lên gấp đôi chiến tranh là do lý do tôi chuyển tiếp cổng. Tomcat thường hoạt động trên cổng 8080. Để buộc nó hoạt động trên cổng 80, tôi đã cấu hình máy chủ của mình (sử dụng iptables) theo cách mà nó đơn giản chuyển tiếp các yêu cầu từ 80 đến 8080 cổng. Đối với cấu hình plugin tomcat maven tôi chỉ đơn giản sử dụng tải lên bằng ip, mà không chỉ định cổng 8080. Điều này gây ra maven plugin để tải lên chiến tranh hai lần (yêu cầu đầu tiên là một chuyển hướng, trong khi thứ hai là tải lên thực tế).

Chỉ cần thay đổi cổng trong cấu hình plugin thành 8080 đã giải quyết được sự cố của tôi.