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

如何无需构建WAR包快速部署Maven管理的Java Web项目至Jetty

无需构建WAR包的快速部署方案(优先Jetty)

好问题!我太懂你被20分钟WAR包构建拖慢开发节奏的痛苦了——毕竟快速迭代才是开发时的核心需求。下面几个方案能帮你实现无需构建WAR包、接近Jetty插件启动速度的部署,优先推荐Jetty相关的:

1. 最省心:Maven Jetty插件命令行启动

这其实就是你之前在Eclipse里用的Jetty插件的原生用法,只是脱离IDE用命令行触发,完全贴合你的需求:

  • 先确认项目pom.xml里已经配置了Jetty Maven插件(如果之前Eclipse能用,应该已经有了,没有的话加这段):
<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>比如9.4.51.v20230217(选和你之前兼容的版本)</version>
            <configuration>
                <httpConnector>
                    <port>8080</port> <!-- 自定义端口 -->
                </httpConnector>
                <webApp>
                    <contextPath>/your-app</contextPath> <!-- 自定义上下文路径 -->
                </webApp>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 打开终端,进入项目根目录,执行命令:mvn jetty:run
  • 效果:直接加载项目源码、资源和依赖,无需构建WAR包,启动速度和你之前Eclipse里用插件完全一致,还支持热部署——修改Java代码或前端资源后,Jetty会自动重新加载,不用重启服务,开发效率拉满。

2. 灵活度更高:独立Jetty+自动部署

如果不想依赖Maven插件,也可以用独立版Jetty配合快速部署:

  • 先快速编译项目代码(这比打WAR快N倍,几秒就能完成):mvn compile,如果项目有外部依赖,执行mvn dependency:copy-dependencies把依赖包复制到target/dependency目录
  • 下载Jetty独立版并解压,把项目的src/main/webapp目录复制到Jetty的webapps文件夹下,重命名成你想要的上下文名(比如your-app)
  • 把编译好的类(target/classes)复制到webapps/your-app/WEB-INF/classes,把依赖包(target/dependency里的jar)复制到webapps/your-app/WEB-INF/lib
  • 启动Jetty:在Jetty根目录执行java -jar start.jar
  • 进阶:修改Jetty的etc/jetty-deploy.xml开启热部署,这样你修改代码后重新编译,Jetty会自动检测到变化并刷新,不用手动重启。

3. 备选:其他容器的快速开发模式

如果不局限于Jetty,这些方案同样能实现快速部署:

  • Tomcat Maven插件:和Jetty插件逻辑一致,执行mvn tomcat7:run(或对应版本的tomcat8:run/tomcat9:run),无需WAR包直接启动。pom.xml配置示例:
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>8080</port>
        <path>/your-app</path>
    </configuration>
</plugin>
  • Spring Boot嵌入式容器:如果你的项目是Spring体系的,改造成Spring Boot项目后,直接执行mvn spring-boot:run就能启动,默认自带嵌入式Tomcat(也可以配置换成Jetty),完全不用WAR包,启动速度快,还自带热重载支持。

总结:最推荐方案1,mvn jetty:run完全匹配你的需求——不用脱离Jetty、无需构建WAR包、启动速度和之前IDE里一致,还能热部署,完美解决你的痛点。

内容的提问来源于stack exchange,提问作者leandropintos91

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:26:34