Tomcat için pom içinde veya komut satırında alternatif bir bağlantı noktası belirlemenin kolay bir yolu var mı? Aynı makinede çalışan birkaç projem var.Maven ile başlatırken Tomcat için alternatif bağlantı noktası (8080 değil)?
cevap
Eğer maven Tomcat eklenti kullanarak yapıyorsanız, pom.xml bir eklenti yapılandırma bloğu ekleyerek specify a context.xml yapabilirsiniz: src/main/webapp/META-INF/context.xml
bulunmaktadır kullanılan
<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>
varsayılan context.xml dosyasını.
Buraya farklı bağlantı noktaları ayarlayın. tomcat-maven-plugin verilen sözdizimi kullanarak
doğrudan bağlantı noktasını belirtebilirsiniz:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>tomcat-development-server</server> <port>9966</port> </configuration> </plugin>
bu settings.xml içinde belirtilen edilebilir ? Bu yapılandırma, eğer tomcat'ları farklı bir bağlantı noktasında koşarsa, başkalarının bunu kullanmasını engellerdi. – Drew
Yeni belge burada: https://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html – dhh
Bu benim için çalışmıyor – Snickers3192
ben ...
belgelere bağlantı Greg tarafından sağlanan Konuyu eski olduğunu biliyorum ama ilginç:
port:
The port to run the Tomcat server on.
Type: int
Required: No
Expression: ${maven.tomcat.port}
Default: 8080
İfade ne maven kodundaki değeri almak için kullanın. Bir yapılandırma dosyasından veya komut satırından gelebilir.
Sen
mvn -Dmaven.tomcat.port=8181 tomcat:run-war
çalıştırabilir ben gibi bir sorun aynı bağlantı noktasını kullanmak üzere yapılandırılmış edildi oldu aynı zamanda onların entegrasyon test aşamasında, koşmak birkaç küçük servlet varken benzer bir sorun vardı . Ama build-helper-maven-plugin:reserve-network-port hedefine, mevcut olan rasgele port numaralarını almak mümkündür. Daha sonra, feed into Java test sınıfı olan http://localhost:[port]/[servletname]'u içeren bir URL oluşturabilirim. hata korumalı tarafından çalıştırılan Java entegrasyon testine URL'yi Besleme portu
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<configuration>
<port>${tomcat.http.port}</port>
<useTestClasspath>true</useTestClasspath>
</configuration>
....
</plugin>
ile
<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>
Başlangıç tomcat:
rastgele port alınıyor eklenti
<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>
Java kodu
public class DownloadAreaIT {
private static final String URL = System.getProperty("integration-test.url");
}
Ben en iyi düşünmek ve en basit (test düzgün entegrasyon aşamasına bağlamak varsa) şudur:
<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>
Bağlantı noktası yapılandırması eklemek coud özniteliği bağlantı noktasına ekleyerek kalıcı olarak.
<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>
Aşağıda benim için çalıştı: Eğer varsa (Sadece application.properties düzenleyin Maven
ile başlatırken
<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>
en iyi ve (değil 8080) Tomcat değiştirmek için kolay bir yol yoktur no application.properties dosyası, daha sonra maven projenizin kaynak dizinindeki bir application.properties dosyası oluşturun) ve aşağıdaki satırın altından ayarlayın
server.port = 8181 // You can c liman numaranızı delin.
POM.xml'deki bağlantı noktasını değiştirme konusunda yaklaşık 3 saat geçirdikten sonra, İşte en son çözümüm. o Eğer <configuration>
ayarlayabileceğiniz bir özellik olmadığı için sadece port
kullanma
<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>
çalışma değildi. Soruna neyin neden olduğunu anlamamız gerek. Benim durumumda hata, 8080
portunun alındığıydu. Bağlantıyı server.xml
içinde 8081
olarak değiştirdim ancak maven onu oradan almıyor. Özellikle configuration
alanında belirtmemiz gerekiyor. Bu, <maven.tomcat.port>8081</maven.tomcat.port>
'un kurtarıldığı yerdir. Not: 8081 portunu beğendiğiniz başka bir şeye yükleyebilirsiniz.
<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>
mvn -Dmaven.tomcat .port = <1024-49151> erkek kedi : koşmak Örnek mvn -Dmaven.tomcat7.port = 8585 tomcat7: VEYA pom.xml çalıştırmak ... yapılandırma> –
Rafiq