pom 또는 명령 줄에서 Tomcat에 대한 대체 포트를 지정하는 쉬운 방법이 있습니까? 같은 시스템에서 여러 프로젝트를 실행하고 싶습니다.Maven으로 시작할 때 Tomcat 용 대체 포트 (8080 아님)?
답변
당신이 받는다는 바람둥이 플러그인을 사용하는 경우 pom.xml 파일에 플러그인 구성 블록을 추가하여 specify a context.xml 할 수 있습니다 src/main/webapp/META-INF/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>
기본의 context.xml 파일을.
다른 포트를 설정하십시오. tomcat-maven-plugin에 주어진 구문을 사용
, 직접 포트를 지정할 수 있습니다
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>tomcat-development-server</server> <port>9966</port> </configuration> </plugin>
이이 Settings.XML의 내에서 지정 될 수 ? 이 구성은 바람둥이가 다른 포트에서 실행되는 경우 다른 구성 요소를 사용하지 못하게합니다. – Drew
여기에 새 문서가 있습니다. https://tomcat.apache.org/maven-plugin-trunk/run-mojo-features.html – dhh
이것은 나를 위해 작동하지 않습니다 – Snickers3192
을 나는 ...
문서에 대한 링크, 그렉에서 제공을이 스레드가 오래 알고 있지만 흥미 롭습니다 :
port:
The port to run the Tomcat server on.
Type: int
Required: No
Expression: ${maven.tomcat.port}
Default: 8080
표현식은 다음과 같습니다. 해당 코드에서 값을 가져 오는 데 사용하십시오. 구성 파일이나 명령 행에서 올 수 있습니다.
당신은
mvn -Dmaven.tomcat.port=8181 tomcat:run-war
를 실행할 수 나는 것과 같은 문제가 동일한 포트를 사용하도록 구성된이 된 동시에 자신의 통합 테스트 단계를 실행 여러 개의 작은 서블릿을했을 때 비슷한 문제가 있었다 . 그러나 build-helper-maven-plugin:reserve-network-port 목표 덕분에 사용할 수있는 임의의 포트 번호를 얻을 수 있습니다. 그런 다음 http://localhost:[port]/[servletname]을 포함하는 URL을 만들 수 있습니다.이 URL은 feed into Java 테스트 클래스입니다. 이중 안전에 의해 실행되는 자바 통합 테스트에 URL을 먹이 포트
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<configuration>
<port>${tomcat.http.port}</port>
<useTestClasspath>true</useTestClasspath>
</configuration>
....
</plugin>
와
<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>
시작 바람둥이 :
임의의 포트 검색 플러그인
은<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>
자바 코드는
public class DownloadAreaIT {
private static final String URL = System.getProperty("integration-test.url");
}
내가 가장 생각하고 단순한 (테스트가 제대로 통합 단계에 결합하는 경우)이 있습니다 :
<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>
당신은 포트 구성을 추가 coud 속성 포트를 추가하여 영구적으로
<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>
다음은 나를 위해 일한 : 당신이있는 경우에 (그냥 application.properties을 편집 메이븐
로 시작하는 경우
<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>
가장하고 (안 8080) Tomcat을 변경하는 쉬운 방법이있다 application.properties 파일이 없다면, 당신의 maven 프로젝트의 resources 디렉토리에 application.properties 파일을 생성하십시오.) 파일과 아래 라인을 설정하십시오.
server.port = 8181 // 당신은 할 수 있습니다. 당신의 항구 번호를 고수하십시오.
POM.xml에서 포트를 변경하는 방법에 대해 대략 3 시간을 보낸 후, 여기 내 최신 솔루션이 있습니다. 그건 당신이 <configuration>
에서 설정할 수있는 속성이 아니기 때문에 단지 port
를 사용
<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>
작동되지 않았습니다. 우리는 문제의 원인을 이해해야합니다. 제 경우에는 오류가있는 포트 8080
입니다. server.xml
의 포트를 8081
으로 변경했지만, maven이 거기에서 가져 가지 않습니다. 우리는 특별히 configuration
필드에 그것을 말할 필요가 있습니다. 이것은 <maven.tomcat.port>8081</maven.tomcat.port>
이 구출 된 곳입니다. 참고 : 포트 8081을 원하는 다른 것으로 연결할 수 있습니다.
<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> 톰캣 : 실행 예 MVN -Dmaven.tomcat7.port tomcat7 = 8585 : OR 의 pom.xml 하여 실행 ... <구성> 8585 구성> –
Rafiq