以Gradle插件的方式为Java web项目启动Tomcat

简介: 在社区版IntelliJ IDEA除了用SmartTomcat,还有什么方式可以在可调试的情况下启动Tomcat呢,来试试com.bmuschko.tomcat插件吧

曾经在NetBeans,Eclipse的时代,web项目搭配Tomcat启动是较为轻松的,myeclipse甚至是内置了一个tomcat服务器,连自己去下载tomcat这一步都不需要。但Java的IDE进入Intellij IDEA流行时,就出现了一些小问题...

不得不承认近些年Intellij IDEA的迭代速度是有些快的,一年就能有几次大更新,最开始很多人应该都是用Ultimate版本的,但即使可以像myeclipse一样能破解,但每次发布新版时还是会有些困扰,比以前是麻烦了许多,很多人不得不转使用Community版,问题就在于这个版本是没有Tomcat支持的,大多数情况下只能去安装Smart Tomcat插件,当然了,还有个Tomcat runner的插件。这些IDE插件固然是可以的,但只有一套方案显然单薄了些,而且国内安装IDEA插件也很容易安装失败,这里介绍一种新的方式,既引入一个Gradle插件来启动Tomcat,也是不需要自己另外再安装Tomcat本体的,只安装插件即可。

这里默认介绍的是groovy语言的gradle,也是gradle长期以来的默认语言,不过如果是kotlin也差不太多,依葫芦画瓢即可,首先在build.gradle中开始部分引入插件本体:

plugins {
   
    id 'com.bmuschko.tomcat'
}

当然这样apply plugin也可以:

apply plugin: "com.bmuschko.tomcat"

然后引入tomcat本体到dependencies中,毕竟是要随项目一起启动的:

dependencies {
   
    def tomcatVersion = '8.5.16'
    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
                    "org.apache.tomcat.embed:tomcat-embed-logging-juli:8.5.2",
                    "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}",
                    "org.apache.tomcat.embed:tomcat-embed-websocket:${tomcatVersion}"
}

如果要使用9版本的话,tomcatVersion9.0.75tomcat-embed-logging-juli9.0.0.M6

在末尾还需要对tomcat进行一些设定:

tomcat {
   
    httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
    ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
}

这两个属性可以说是必需,当然可以设置的部分很多,以下常用属性一看便知:

tomcat {
    httpPort = 8090
    httpsPort = 8091
    enableSSL = true
    contextPath = 'url-path'
}

当然还有很多,详细可以看它的github文档介绍:https://github.com/bmuschko/gradle-tomcat-plugin#extension-properties

最后还有一点,需要在settings.gradle中写一段buildscript

buildscript {
    repositories {
        gradlePluginPortal()
    }

    dependencies {
        classpath 'com.bmuschko:gradle-tomcat-plugin:2.7.0'
    }
}

然后刷新IDEA的Gradle面板就能看见Tasks里有一个web application了:

image.png

执行tomcatRun即可运行,这种方式总体看上去也是比较便捷的,不过说便捷当然还是比不了spring-boot,但也有很多人喜欢这样传统的方式。国内也有很多文章介绍这个com.bmuschko.tomcat,连b站专栏都有了,不过感觉都是多多少少有些遗漏,根据我实践来看最后buildscript的这一段是不能跳过的。

本文写作于2023年5月17日并发布于lyrieek的掘金,于2023年7月16日进行修订发布于lyrieek的阿里云开发者社区。

目录
相关文章
|
2月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
317 0
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
353 1
|
2月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
176 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
2月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
281 8
|
2月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
195 6
|
3月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
299 1
|
3月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
282 0
|
3月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
477 64
|
4月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
540 0
|
4月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
310 0

热门文章

最新文章

推荐镜像

更多