Có một cách dễ dàng để chỉ định một cổng thay thế cho Tomcat trong pom hoặc trên dòng lệnh. Tôi muốn có một số dự án chạy trên cùng một máy.Cổng thay thế cho Tomcat (không phải 8080) khi bắt đầu với Maven?
Trả lời
Nếu bạn đang sử dụng các plugin tomcat maven, bạn có thể specify a context.xml bằng cách thêm một khối cấu hình plugin để pom.xml: tập tin context.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>
Giá trị mặc định sử dụng tọa lạc tại src/main/webapp/META-INF/context.xml
.
Đặt các cổng khác nhau tại đó.
Sử dụng cú pháp nhất định trên tomcat-maven-plugin, bạn có thể trực tiếp chỉ định cổng:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>tomcat-development-server</server> <port>9966</port> </configuration> </plugin>
Điều này có thể được chỉ định trong tệp settings.xml không? Cấu hình này sẽ phá vỡ những người khác sử dụng nó nếu tomcat của họ chạy trên một cổng khác. – Drew
Tài liệu mới tại đây: https://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html – dhh
Điều này không có tác dụng đối với tôi – Snickers3192
Tôi biết chủ đề này là cũ nhưng ...
Các liên kết đến các tài liệu hướng dẫn, được cung cấp bởi Greg thú vị:
port:
The port to run the Tomcat server on.
Type: int
Required: No
Expression: ${maven.tomcat.port}
Default: 8080
Biểu thức là những gì maven sử dụng để lấy giá trị trong mã của nó. Nó có thể đến từ một tập tin cấu hình, hoặc từ dòng lệnh.
Bạn có thể chạy
mvn -Dmaven.tomcat.port=8181 tomcat:run-war
Tôi đã có một vấn đề tương tự khi tôi đã có một vài servlets nhỏ mà chạy giai đoạn hội nhập-kiểm tra của họ cùng một lúc, mà đã trở thành một vấn đề như những người đã được cấu hình để sử dụng cùng một cổng . Nhưng nhờ mục tiêu build-helper-maven-plugin:reserve-network-port, có thể nhận được số cổng ngẫu nhiên khả dụng. Sau đó, tôi có thể tạo URL chứa http://localhost:[port]/[servletname], là feed into lớp thử nghiệm Java.
Lấy ngẫu nhiên cổng:
<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>
Bắt đầu tomcat với cổng
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<configuration>
<port>${tomcat.http.port}</port>
<useTestClasspath>true</useTestClasspath>
</configuration>
....
</plugin>
ăn URL để kiểm tra tích hợp Java mà được điều hành bởi các failsafe 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>
mã Java
public class DownloadAreaIT {
private static final String URL = System.getProperty("integration-test.url");
}
Tôi nghĩ tốt nhất và đơn giản nhất là này (nếu thử nghiệm của bạn đang đúng cách liên kết với giai đoạn hội nhập):
<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>
Bạn coud thêm cấu hình cổng vĩnh viễn bằng cách thêm cổng thuộc tính vào nó.
<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>
Dưới đây từng làm việc cho tôi:
<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>
Có là tốt nhất và cách dễ dàng để thay đổi Tomcat (không 8080) khi bắt đầu với Maven
Chỉ Chỉnh sửa application.properties của bạn (nếu bạn có không có tệp application.properties, sau đó tạo tệp application.properties trong thư mục tài nguyên của tệp maven project của bạn) và đặt bên dưới dòng
server.port = 8181 // Bạn có thể c hoose số cổng của bạn.
Sau khi dành khoảng 3 giờ để thay đổi cổng trong POM.xml, đây là giải pháp mới nhất của tôi.
<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>
Sử dụng chỉ port
đã không làm việc vì đó không phải là một tài sản mà bạn có thể thiết lập trong <configuration>
. Chúng ta cần phải hiểu những gì đang gây ra vấn đề. Trong trường hợp của tôi, lỗi là cổng 8080
được lấy. Tôi đã thay đổi cổng trong server.xml
thành 8081
nhưng maven không lấy nó từ đó. Chúng tôi cần phải nói cụ thể trong trường configuration
. Đây là nơi mà <maven.tomcat.port>8081</maven.tomcat.port>
được giải cứu. Lưu ý: Bạn có thể chnage cổng 8081 để một cái gì đó khác mà bạn thích.
<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. Tại sao Tomcat làm việc với cổng 8080 nhưng không phải 80?
- 2. Thay đổi cổng Oracle từ cổng 8080
- 3. tomcat đang chạy, nhưng cổng 8080 không phản hồi
- 4. Jenkins sẽ không bắt đầu: Không thể nghe trên cổng 8080
- 5. Tôi có thể chạy Tomcat an toàn trên cổng 443 và không an toàn trên 8080
- 6. tomcat7-maven-plugin: chạy nhiều ứng dụng web nhưng cổng 8080 đã được sử dụng
- 7. Cách thay đổi cổng tomcat từ plugin tomcat của eclipse
- 8. Chuyển hướng từ cổng ssl 8080 sang cổng ssl 8443
- 9. Tomcat không bắt đầu (ném java.net.BindException:)
- 10. Tomcat máy chủ không thể bắt đầu
- 11. Có thay thế Maven hoặc cổng cho thế giới .NET không?
- 12. Tomcat webapp trên cổng 80
- 13. Bắt đầu với Scala, Scalatest, và Maven
- 14. kiểm tra tích hợp sẽ không bắt đầu (Failsafe, Maven)
- 15. Cách bắt đầu WEBrick ở một cổng khác với 3000
- 16. Không thể mở http: // localhost: 8080/khi Tomcat đang chạy trong Eclipse
- 17. "Trạng thái HTTP 404 - /" (localhost: 8080) khi cố gắng cài đặt apache tomcat trong Eclipse
- 18. Tại sao Tomcat sẽ không liên kết với cổng tắt (8005)?
- 19. Bắt đầu từ Tomcat add-on XAMPP không làm việc
- 20. Bắt đầu với Gradle
- 21. Tomcat khởi động, 8080 địa chỉ đã được sử dụng
- 22. Làm thế nào để bắt đầu nginx qua cổng khác (ngoài 80)
- 23. Bắt tất cả thay thế thứ hai cho quy tắc bắt đầu của tôi
- 24. iptables chuyển hướng 80 đến 8080 nhưng chặn truy cập công cộng 8080
- 25. dịch vụ Tomcat không chạy sau khi cài đặt XAMPP
- 26. Làm thế nào để bắt đầu với Mono trong Linux cho người mới bắt đầu?
- 27. Android Maven không bắt đầu trình mô phỏng
- 28. thay đổi số cổng cho solr-4.3.1
- 29. Trợ giúp cấu hình Tomcat: nhiều cổng không phản hồi
- 30. Maven có phải là bắt buộc đối với Clojure trên JVM không?
mvn -Dmaven.tomcat .port = <1.024-49.151> tomcat : chạy Ví dụ mvn -Dmaven.tomcat7.port = 8585 tomcat7: chạy HOẶC trong pom.xml ... configuration> –
Rafiq