2012-12-21 11 views
5

Wenn ich meine WAR mithilfe von Maven bereitstellen, wird der Zielkrieg (genau derselbe) zweimal auf den Server hochgeladen. Kann jemand das erklären?Warum Apache Tomcat Maven-Plugin die WAR-Datei zweimal hochlädt?

Ich verwende auf meinem Modul:

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

aus dem Protokoll

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

Mein Haupt pom.xml wie folgt aussieht Datei:

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

UPDATE Eltern pom:

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> 

Danke für jeden Hinweis.

+0

versuchen Sie, Ihre Jetty-Plugin zu entfernen und erneut auszuführen, nur um sicherzustellen, Jetty-Plugin ist nicht der Schuldige. –

+0

@SajanChandran danke für einen Versuch, aber es gibt keine Änderung – Cabot

+0

Es gibt ein Problem darüber bei Apache (ich denke von dir @Cabot?): [MTOMCAT-195] (https://issues.apache.org/ jira/browse/MTOMCAT-195) Keine Erklärung obwohl. – peron

Antwort

0

Probieren Sie es aus und führen Sie die mvn-Befehlszeile ohne das Installationsziel aus.

0

Kürzlich habe ich mit dem gleichen Problem während des Hochladens meines Krieges auf einen Testserver konfrontiert. Ich habe mehrere Versuche unternommen, die Antwort auf diese Frage im Internet ohne Erfolg zu finden. Zufällig fand ich unser Problem in meinem Fall und ich teile es hier, weil vielleicht das jemandem helfen kann (aber, ich bin mir nicht sicher, ob das dein Fall ist).

Also in meinem Fall wurde der doppelte Upload von Krieg durch den Grund verursacht, dass ich Ports weitergeleitet habe. Tomcat funktioniert normalerweise am 8080-Port. Um es auf Port 80 zu erzwingen, habe ich meinen Server (mit iptables) so konfiguriert, dass Anfragen einfach von 80 nach 8080 weitergeleitet werden. Für die Konfiguration von tomcat maven plugin nutze ich einfach das Hochladen per IP, ohne den Port 8080 zu spezifizieren. Dies führt dazu, dass maven plugin den Krieg zweimal hochlädt (die erste Anfrage war eine Umleitung, während die zweite ein tatsächlicher Upload war).

Einfach den Port in der Plugin-Konfiguration zu 8080 zu ändern löste mein Problem.