You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:33:31