使用tomcat7-maven-plugin生成可执行Jar时如何修改Tomcat默认端口?
解决tomcat7-maven-plugin生成可执行Jar的端口修改问题
问题原因
你使用tomcat7-maven-plugin的exec-war-only目标生成的内嵌Tomcat可执行Jar,端口配置逻辑与Spring Boot不同,因此之前尝试的-Dserver.port、错误的插件配置标签均无效。
正确解决方案
方案1:在pom.xml中配置默认端口
修改插件的<configuration>节点,添加<port>标签指定端口,生成的Jar将默认使用该端口启动:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.0</version> <executions> <execution> <id>tomcat7-run</id> <goals> <goal>exec-war-only</goal> </goals> <phase>package</phase> <configuration> <path></path> <enableNaming>false</enableNaming> <finalName>Univer.jar</finalName> <charset>utf-8</charset> <!-- 添加端口配置 --> <port>9090</port> </configuration> </execution> </executions> </plugin>
修改后重新执行mvn package生成Jar,启动后即可使用9090端口访问。
方案2:运行Jar时动态指定端口
无需修改pom.xml,启动时通过系统属性tomcat.http.port指定端口:
java -Dtomcat.http.port=9091 -jar Univer.jar
该参数会覆盖Jar内置的默认端口配置。
为什么之前的方法无效?
-Dserver.port是Spring Boot内嵌Tomcat的专属端口参数,不适用于tomcat7-maven-plugin生成的Jar;- 你尝试的
<maven.tomcat.port>、<httpPort>等标签并非该插件的有效配置项,该插件的端口配置标签为<port>; java -jar Univer.jar -httpPort=9091的参数格式错误,该Jar不支持直接传参,必须使用-D前缀的系统属性格式。
内容的提问来源于stack exchange,提问作者Vavilapalli Surapu Naidu
相关产品推荐
相关产品推荐

