web-dev-qa-db-fra.com

Intégration de Tomcat 8 avec Maven

Il semble que Eclipse (Kepler) ne dispose pas du plug-in approprié pour Tomcat 8. Je souhaite déployer mon fichier .war sur Tomcat 8 et l'exécuter à l'aide du fichier pav.xml Maven. Quelqu'un peut-il me fournir des conseils étape par étape ou des ressources, s'il vous plaît?

Mon fichier POM:

<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>
  <groupId>Test-App</groupId>
  <artifactId>test-rest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>test-rest Maven Webapp</name>
  <url>http://maven.Apache.org</url>
     <!-- Tomcat plugin -->


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
  <plugins>
  <plugin>
    <groupId>org.Apache.Tomcat.maven</groupId>
    <artifactId>Tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
     <path>/${project.build.finalName}</path>
     <update>true</update>
     <url>http:// localhost:8080/manager/text</url>
     <username>Tomcat</username>
     <password>tomcatuser</password>
    </configuration>
   </plugin>
   </plugins>
    <finalName>test-rest</finalName>
  </build>
</project>
16
Débora

Pouvez-vous utiliser le plugin cargo à la place, cela fonctionne pour moi, en déployant sur Tomcat 8: 

             <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <version>1.4.8</version>
                <configuration>
                    <container>
                        <containerId>Tomcat8x</containerId>
                        <home>${env.CATALINA_HOME}</home>
                    </container>
                    <configuration>
                        <type>existing</type>
                        <home>${env.CATALINA_HOME}</home>
                    </configuration>
                    <deployables>
                        <deployable>
                            <groupId>com.yourcompany</groupId>
                            <artifactId>ROOT</artifactId>
                            <type>war</type>
                            <properties>
                                <context>${project.build.finalName}</context>
                            </properties>
                        </deployable>
                    </deployables>
                    <deployer>
                        <type>installed</type>
                    </deployer>
                </configuration>
            </plugin>
9
NimChimpsky

Exemple de comment mener votre guerre avec cargo et Tomcat8

mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run -Dcargo.maven.containerId=Tomcat8x -Dcargo.maven.containerUrl=http://repo1.maven.org/maven2/org/Apache/Tomcat/tomcat/8.5.9/Tomcat-8.5.9.Zip

Si vous voulez l'ajouter à votre pom

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <version>${cargo.version}</version>
  <configuration>
    <container>
      <containerId>Tomcat8x</containerId>
      <zipUrlInstaller>
          <url>http://repo1.maven.org/maven2/org/Apache/Tomcat/tomcat/8.5.9/Tomcat-8.5.9.Zip</url>
      </zipUrlInstaller>
    </container>
  </configuration>
</plugin>

Puis de vous faire la guerre (si votre pom est une guerre)

mvn cargo:run

Pour exécuter avec le débogage (options de mémoire non nécessaires)

<plugin>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-maven2-plugin</artifactId>
  <version>${cargo.version}</version>
  <configuration>
    <container>
      <containerId>Tomcat8x</containerId>
      <zipUrlInstaller>
          <url>http://repo1.maven.org/maven2/org/Apache/Tomcat/tomcat/8.5.9/Tomcat-8.5.9.Zip</url>
      </zipUrlInstaller>
    </container>
    <configuration>
      <properties>
        <!-- <cargo.servlet.port>8200</cargo.servlet.port> -->
        <cargo.jvmargs>-Xmx2048m -Xms512m</cargo.jvmargs>
        <cargo.start.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000</cargo.start.jvmargs>
      </properties>
    </configuration>
  </configuration>
</plugin>

Ensuite, vous devez créer une configuration de débogage à distance dans votre IDE sur le port 8000 (port par défaut si rien n’est spécifié).

D'autres commandes ici: https://codehaus-cargo.github.io/cargo/Maven2+plugin.html#Maven2plugin-TheCargoMavenpluginindetail

5
Ronan Quillevere

Pour Tomcat 8, vous devez utiliser cargo-maven2-plugin, qui fonctionne à la fois pour maven 2 et maven 3. Lors de la configuration du plugin cargo, assurez-vous que la valeur de Container Id est "Tomcat8x". Ne pas omettre le "x" après Tomcat8.

2
C Wang

Juste au cas où vous utiliseriez un serveur local Tomcat séparé. Si vous utilisez Tomcat intégré, cela ne s'applique pas.

Dans votre pom.xml, ajoutez le plugin Tomcat. (Vous pouvez l'utiliser pour Tomcat 7 et 8):

pom.xml

<!-- Tomcat plugin -->  
<plugin>  
 <groupId>org.Apache.Tomcat.maven</groupId>  
 <artifactId>Tomcat7-maven-plugin</artifactId>  
 <version>2.2</version>  
 <configuration>  
  <url>http:// localhost:8080/manager/text</url>  
  <server>TomcatServer</server>    *(From maven > settings.xml)*
  <username>*yourtomcatusername*</username>  
  <password>*yourtomcatpassword*</password>   
 </configuration>   
</plugin>   

Tomcat-users.xml

<Tomcat-users>
    <role rolename="manager-gui"/>  
        <role rolename="manager-script"/>   
        <user username="admin" password="password" roles="manager-gui,manager-script" />  
</Tomcat-users>

settings.xml (maven> conf)

<servers>  
    <server>
       <id>TomcatServer</id>
       <username>admin</username>
       <password>password</password>
    </server>
</servers>  

* deploy/re-deploy

MVN Tomcat7: deploy OR MVN Tomcat7: redéployer

J'ai essayé cela (Ubuntu et Windows 8/10):
* Jdk 7 & Tomcat 7
* Jdk 7 & Tomcat 8
* Jdk 8 & Tomcat 7
* Jdk 8 & Tomcat 8 

Testé à la fois sur Jdk 7/8 et Tomcat 7/8. (Fonctionne avec Tomcat 8.5 Aussi, testera Tomcat 9 prochainement)

Remarque:
Le gestionnaire Tomcat doit être en cours d’exécution ou correctement configuré avant de pouvoir être utilisé avec maven.

1
Borgy Manotoy