Czy istnieje prosty sposób określenia alternatywnego portu dla Tomcat w pom lub w linii poleceń. Chciałbym mieć kilka projektów uruchomionych na tym samym komputerze.Alternatywny port dla Tomcat (nie 8080) podczas uruchamiania z Maven?
Odpowiedz
Jeśli używasz maven plugin tomcat, można specify a context.xml dodając blok konfiguracyjny wtyczki do pom.xml Państwo:
<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>
domyślny plik context.xml używany położony jest przy src/main/webapp/META-INF/context.xml
.
Ustaw tam różne porty.
Korzystanie składni podane tomcat-maven-plugin można bezpośrednio określić port:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>tomcat-development-server</server> <port>9966</port> </configuration> </plugin>
Może to być określone w settings.xml? Ta konfiguracja złamałaby innych używających go, gdyby ich tomcat działał na innym porcie. – Drew
Nowa dokumentacja tutaj: https://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html – dhh
To nie działa dla mnie – Snickers3192
Znam ten wątek jest stary, ale ...
link do dokumentacji, pod warunkiem przez Greg co ciekawe:
port:
The port to run the Tomcat server on.
Type: int
Required: No
Expression: ${maven.tomcat.port}
Default: 8080
wyrażenie to co Maven użyj, aby uzyskać wartość w swoim kodzie. Może pochodzić z pliku konfiguracyjnego lub z wiersza poleceń.
Można uruchomić
mvn -Dmaven.tomcat.port=8181 tomcat:run-war
miałem podobny problem, gdy miałem kilka małych serwletów uruchamianych fazie ich integracja-test w tym samym czasie, która stała się problemem, jak te zostały skonfigurowane do korzystania z tego samego portu . Ale dzięki bramce build-helper-maven-plugin:reserve-network-port możliwe jest uzyskanie losowych numerów portów, które są dostępne. Następnie mogę utworzyć adres URL zawierający http://localhost:[port]/[servletname], który jest feed into klasą testową Java.
Odzyskiwanie losowy port:
<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>
Zaczynając tomcat z portem
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<configuration>
<port>${tomcat.http.port}</port>
<useTestClasspath>true</useTestClasspath>
</configuration>
....
</plugin>
Karmienie URL do testu integracyjnego Java, który jest prowadzony przez Fail wtyczka
<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>
kod Java
public class DownloadAreaIT {
private static final String URL = System.getProperty("integration-test.url");
}
myślę najlepszym i najprostszym jest to (jeśli testy są właściwie wiąże się z fazy integracji):
<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>
Jesteś coud dodać konfigurację portu na stałe, dodając do niego port atrybutu.
<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>
Poniżej pracował dla mnie:
<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>
Jest najlepszy i łatwy sposób zmienić Tomcat (nie 8080) kiedy wychodząc z Maven
Wystarczy Edycja application.properties (jeśli masz bez pliku application.properties, a następnie utwórz plik application.properties w katalogu zasobów twojego projektu maven) i ustaw poniżej linii server.port = 8181 // Możesz c wybierz swój numer portu.
Po spędzeniu około 3 godzin na zmianie portu w POM.xml, oto moje najnowsze rozwiązanie.
<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>
Korzystanie właśnie port
nie działa, ponieważ nie jest to obiekt, który można ustawić w <configuration>
. Musimy zrozumieć, co jest przyczyną problemu. W moim przypadku błąd był taki, że został pobrany port 8080
. Zmieniłem port w server.xml
na 8081
, ale maven nie bierze go stąd. Musimy to wyraźnie powiedzieć w polu configuration
. Tutaj ratuje się <maven.tomcat.port>8081</maven.tomcat.port>
. Uwaga: możesz przeportować port 8081 na coś, co ci się podoba.
<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. Dlaczego Tomcat działa z portem 8080, ale nie z 80?
- 2. Nie można uruchomić aplikacji (port 8080)
- 3. Czy istnieje standardowy alternatywny port HTTPS?
- 4. Stałe ostrzeżenie podczas uruchamiania tomcat z intellij
- 5. Maven - alternatywny katalog .m2
- 6. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver podczas Runtime (eclipse/maven/tomcat)
- 7. Wtyczka Maven dla Tomcat 9
- 8. Port używany podczas uruchamiania aplikacji Node.js z Heroku Foreman
- 9. Uzyskaj pełny adres URL serwletu podczas uruchamiania pod Tomcat 7
- 10. Nie można utworzyć pliku logu z tomcat-maven-plugin?
- 11. Wyjątek podczas uruchamiania serwera Tomcat org.apache.catalina.deploy.WebXml addServlet
- 12. Błąd Tomcat-Maven 401: Nie można wywołać menedżera Tomcat
- 13. Wtyczka Tomcat Maven i wielomodułowe projekty Maven
- 14. Maven Tomcat Wbudowany
- 15. Tomcat uruchamia się bez błędów, ale nie nasłuchuje na 8080
- 16. "Nieprawidłowy maksymalny rozmiar sterty" podczas uruchamiania Maven
- 17. Jak zmienić domyślny port embebed-tomcat przy użyciu rozruchu sprężynowego?
- 18. Maven nie rozpoznaje modułów rodzeństwa podczas uruchamiania zależności mvn: drzewo
- 19. Tomcat 7 - Maven Plugin?
- 20. Port aktywatora sprężynowego po zainstalowaniu na zewnętrznym kontenerze Tomcat
- 21. http: // localhost: 8080/nie działa
- 22. Jak wdrożyć WAR z Maven na Tomcat?
- 23. Dlaczego nie mogę rozwiązać zależności dla szybkiego uruchamiania GeoTools maven?
- 24. Jak zmienić port tomcata za pomocą wtyczki eclipse za tomcat
- 25. Jak przechwycić dziennik uruchamiania Tomcat
- 26. Określ JRE/JDK podczas uruchamiania Apache Tomcat 7
- 27. Projekt Running Maven na Tomcat z Eclipse
- 28. Przyrostowe, gorące wdrożenie na Tomcat z Maven i NetBeans
- 29. "Status HTTP 404 - /" (localhost: 8080) podczas próby zainstalowania apache tomcat w Eclipse
- 30. Maven zawiesza się podczas uruchamiania testu Eclipselink i hsqldb
mvn -Dmaven.tomcat .port = <1024-49151> kocur run przykładu mvn -Dmaven.tomcat7.port = 8585 tomcat7: uruchom lub IN pom.xml ... configuration> –
Rafiq