web-dev-qa-db-fra.com

Maven: copiez WAR dans le répertoire des applications Web de Tomcat

Puis-je ajouter quelque chose à pom.xml qui copiera le fichier WAR généré du répertoire cible vers le répertoire webapps de mon Tomcat?

42
l15a
15
l15a
<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <outputDirectory>U:\JBoss6\server\default\deploy\</outputDirectory>
            </configuration>
        </plugin>

Une fois que vous l'avez ajouté à votre pom.xml, vous pouvez copier le fichier WAR en appelant mvn package ou mvn war:war.

65
koszu28

Vous pouvez utiliser http://cargo.codehaus.org/Deploying+to+a+running+container et le configurer en conséquence.

7
Valerio Schiavoni

C'est la bonne approche:

        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
             <warName>${name}</warName>
             <outputDirectory>C:\Tomcat7\webapps</outputDirectory>
            </configuration>
        </plugin>

Cela mettra un fichier war dans le dossier C:\Tomcat7\webapps avec le nom du projet maven.

6
Aled Evans

Vous pouvez également consulter le plugin Jetty. Tapez simplement "mvn jetty: run-war" et jetty devrait exécuter votre fichier war.

Edit: Jetty est un conteneur de servlet léger adapté au développement et aux tests. Le démarrage est également rapide comme l'éclair.

6
Bent André Solheim

Alternativement, vous pouvez demander à Tomcat de regarder dans votre répertoire cible et de le déployer directement à partir de là.

Dans votre élément Context context.xml ou server.xml:

<Context path="" docBase="/path/to/target/exploded">
...
</Context>

Ensuite, vous pouvez utiliser l'objectif guerre: éclaté pour créer votre guerre éclatée.

5
Clay

Pas idéal, mais si vous avez une configuration de serveur d'application vraiment étrange, vous pouvez toujours utiliser un ensemble de tâches antrun pour exécuter lorsque le packaging est exécuté

<build>
    ....
    <plugins>
       <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <executions>
            <execution>
              <phase>package</phase>
              <configuration>
                <tasks>
                  <!-- Ant copy tasks go here -->
                </tasks>
              </configuration>
              <goals>
                <goal>run</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
     </plugins>
  </build>
3
sal

Merci pour toutes les réponses ci-dessus.

La réponse ci-dessous fonctionne pour moi. Ceci est juste un consolidé. Rien de spécial!

</project>
 ........ 
   <build>
    <finalName>HelloWorld1</finalName>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId> 
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <outputDirectory>C:\Program Files (x86)\Apache-Tomcat-8.5.8\webapps\</outputDirectory>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

Pour plus d'informations. Veuillez vous référer à dépendance: copie page officielle pour plus d'informations.

1
GrabNewTech

Vous pouvez également le faire avec le plugin de dépendance

1
Brian Fox