Existe-t-il un moyen facile de spécifier un autre port pour Tomcat dans le pom ou sur la ligne de commande. J'aimerais avoir plusieurs projets en cours sur la même machine.Port alternatif pour Tomcat (pas 8080) lors du démarrage avec Maven?
Répondre
Si vous utilisez le plugin tomcat maven, vous pouvez specify a context.xml en ajoutant un bloc de configuration du plugin pour le pom.xml:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<configuration>
<mode>both</mode>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
Le fichier context.xml par défaut utilisé est situé à src/main/webapp/META-INF/context.xml
.
Définissez différents ports ici.
En utilisant la syntaxe donnée sur tomcat-maven-plugin, vous pouvez directement spécifier le port:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>tomcat-development-server</server> <port>9966</port> </configuration> </plugin>
ceci peut être spécifié dans le settings.xml? Cette configuration casserait les autres en l'utilisant si leur Tomcat fonctionnait sur un port différent. – Drew
Nouvelle documentation ici: https://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html – dhh
Cela ne fonctionne pas pour moi – Snickers3192
Je sais que ce fil est vieux, mais ...
Le lien vers la documentation fournie par Greg est intéressant:
port:
The port to run the Tomcat server on.
Type: int
Required: No
Expression: ${maven.tomcat.port}
Default: 8080
L'expression est ce que maven utiliser pour obtenir la valeur dans son code. Cela peut provenir d'un fichier de configuration ou de la ligne de commande.
Vous pouvez exécuter
mvn -Dmaven.tomcat.port=8181 tomcat:run-war
j'ai eu un problème similaire quand j'ai eu plusieurs petites servlets qui exécutent leur phase d'intégration test en même temps, ce qui est devenu un problème que ceux ont été configurés pour utiliser le même port . Mais grâce à l'objectif build-helper-maven-plugin:reserve-network-port, il est possible d'obtenir des numéros de port aléatoires qui sont disponibles. Ensuite, je peux créer une URL contenant http://localhost:[port]/[servletname], qui est feed into la classe de test Java.
Récupération port aléatoire:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>reserve-network-port</id>
<goals>
<goal>reserve-network-port</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<portNames>
<portName>tomcat.http.port</portName>
</portNames>
</configuration>
</execution>
</executions>
À partir tomcat avec le port
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<configuration>
<port>${tomcat.http.port}</port>
<useTestClasspath>true</useTestClasspath>
</configuration>
....
</plugin>
Nourrir l'URL du test d'intégration Java qui est géré par la sécurité intégrée plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12.3</version>
....
<configuration>
<systemPropertyVariables>
<integration-test.url>http://localhost:${tomcat.http.port}/${project.build.finalName}/</integration-test.url>
</systemPropertyVariables>
</configuration>
</plugin>
code Java
public class DownloadAreaIT {
private static final String URL = System.getProperty("integration-test.url");
}
Je pense que le meilleur et le plus simple est ce (si votre test sont lier correctement à la phase d'intégration):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>reserve-network-port</id>
<goals>
<goal>reserve-network-port</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<portNames>
<portName>maven.tomcat.port</portName>
</portNames>
</configuration>
</execution>
</executions>
</plugin>
Vous Coud ajouter la configuration du port de manière permanente en ajoutant l'attribut port.
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<port>9090</port>
</configuration>
</plugin>
</plugins>
</build>
ci-dessous a fonctionné pour moi:
<properties>
<maven.tomcat.port>9090</maven.tomcat.port>
</properties>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>${maven.tomcat.port}</port>
</configuration>
</plugin>
Il est le meilleur et facile de changer Tomcat (pas 8080) lors du démarrage avec Maven
Juste Modifier vos application.properties (si vous avez pas de fichier application.properties, puis créez un fichier application.properties dans le répertoire des ressources de votre projet maven) et réglez au-dessous de la ligne
server.port = 8181 // Vous pouvez c hélez votre numéro de port.
Après avoir passé environ 3 heures sur la façon de changer le port dans POM.xml, voici ma dernière solution.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<maven.tomcat.port>8081</maven.tomcat.port>
</configuration>
</plugin>
En utilisant simplement port
ne fonctionnait pas car ce n'est pas une propriété que vous pouvez définir dans <configuration>
. Nous devons comprendre ce qui cause le problème. Dans mon cas, l'erreur était que le port 8080
est pris. J'ai changé le port en server.xml
en 8081
mais maven ne le prend pas à partir de là. Nous devons le dire spécifiquement dans le champ configuration
. C'est où <maven.tomcat.port>8081</maven.tomcat.port>
vient en secours. Note: Vous pouvez chnage le port 8081 à quelque chose que vous aimez.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<server>tomcat-development-server</server>
<port>9090</port>
</configuration>
</plugin>
- 1. Maven Tomcat Embarqué
- 2. Erreur "SessionId n'existe pas" lors du démarrage du serveur Selenium
- 3. Port ouvert 8080 (APACHE) dans ISA Server 2006
- 4. Modifier le port Tomcat à la volée
- 5. Transfert sur un seul port 8080 vers localhost (windows) possible?
- 6. IDE alternatif pour Silverlight
- 7. Localhost: 8080 sans chargement - glassfish
- 8. Page vierge lors du démarrage d'une grande application Web
- 9. Erreur lors du démarrage de SQL Developer
- 10. Mono: Définir un programme à lancer au démarrage pour un système d'exploitation alternatif.
- 11. Comment désactiver le composant Oracle XE qui écoute sur 8080?
- 12. Document extrait dans SharePoint lors du démarrage du workflow
- 13. mvn tomcat: run ne démarre pas Tomcat
- 14. APC pour windows Téléchargement alternatif
- 15. UnsatisfiedLinkError lors du démarrage du mode hébergé de GWT
- 16. Pourquoi le gestionnaire Tomcat redirige-t-il vers localhost: 8080/company/www.company.org/index.html
- 17. Démarrage de Tomcat avec débogage à distance (jdwp) lorsqu'il est installé en tant que service Windows
- 18. Appel de l'URL lors du démarrage du service Apache
- 19. Visual Studio 2008 se bloque lors du démarrage du débogage
- 20. Cargo ne fonctionne pas sur proxy intégré avec maven 2
- 21. config hôte virtuel Tomcat ne fonctionne pas pour les actions Struts
- 22. apache tomcat fronting
- 23. Comment ouvrir les fichiers automatiquement lors du démarrage d'emacs?
- 24. JNLP n'affiche pas d'écran de démarrage lors du lancement à partir d'une icône de bureau
- 25. PyQt: écran de démarrage lors du chargement des bibliothèques "lourdes"
- 26. Tomcat undeploy ne supprime pas les artefacts d'application Web
- 27. NUnit s'exécute avec le constructeur alternatif
- 28. Erreur lors du démarrage de mysql sous Mac OS 10.5
- 29. Emplacement du référentiel Maven malheurs
- 30. Surveillance du port série
mvn -Dmaven.tomcat .port = <1024-49151> tomcat : course Exemple mvn -Dmaven.tomcat7.port = 8585 tomcat7: exécuter OU dans pom.xml ... configuration> –
Rafiq