VSCode中开发JavaWeb项目(Maven+Tomcat+热部署)

2023-11-07

1.安装插件

首先需要安装所用到的插件,分别用来支持Java、热部署和Tomcat服务器的插件

在插件市场中搜索Java,第一个就是Extension Pack for Java,内置了6个依赖插件,直接一键安装即可。然后是热部署插件,市场搜索Deploy安装即可。最后是Tomcat服务器插件,因为之前的Tomcat for Java被弃用了,官方推荐使用Community Server Connectors来进行代替,同样是搜索安装即可。就是下图的这三个插件。

 2.配置全局的Java与Maven

快捷键shift+ctrl+p打开搜索框,然后输入settings.json,会出现下图的情况

 点击第一个打开设置的选项,就会跳转到主settings.json文件中,这个文件是存在于C盘中的。下面是我的配置文件信息,根据需要对相关路径进行修改即可。

{
    "editor.fontSize": 16,
    "liveServer.settings.donotVerifyTags": true,
    "liveServer.settings.donotShowInfoMsg": true, 
    "explorer.confirmDelete": false,
    "explorer.confirmDragAndDrop": false,
    "security.workspace.trust.untrustedFiles": "open",
    "liveServer.settings.CustomBrowser": "chrome",
    "javascript.updateImportsOnFileMove.enabled": "always",
    "emmet.triggerExpansionOnTab": true,
    "redhat.telemetry.enabled": true,
    // Maven的相关配置信息
    "java.configuration.maven.globalSettings": "D:\\maven\\apache-maven-3.6.3\\conf\\settings.xml",
    "java.maven.downloadSources": true,
    "java.configuration.maven.userSettings": "",
    "maven.executable.path": "D:\\maven\\apache-maven-3.6.3\\bin\\mvn.cmd",
    "maven.settingsFile": "D:\\maven\\apache-maven-3.6.3\\conf\\settings.xml",
    "maven.executable.options": "-DarchetypeCatalog=internal",
    // Java相关配置信息
    "java.configuration.runtimes": [
        {
          "name": "JavaSE-1.8",
          "path": "C:\\Program Files\\Java\\jdk1.8.0_181",
          "default": true
        }
      ],
      "rsp-ui.enableStartServerOnActivation": [
        {
          "id": "redhat.vscode-community-server-connector",
          "name": "Community Server Connector",
          "startOnActivation": true
        }
      ],
      "java.jdt.ls.java.home": "c:\\Program Files\\Java\\jdk1.8.0_181", 
}

3.开始创建Maven项目

点击创建Java项目,选择其中的Maven工具,由于是创建的JavaWeb项目,所以直接选择webapp即可。接下来版本选默认第一个的1.4即可,然后输入自定义groupId和artifactId。确定之后会选择项目的存放路径,然后Maven就开始构建项目了。

 

 

 

 注意到此需要按一下回车来继续,并不是构建卡死了

 之后还有一个确认,输入y或者回车都可以来继续

最后出现BuildSuccess即表示项目构建成功,点击右下方的open即可打开工程

4.配置该项目的settings.json

项目打开后,先对该项目的settings.json文件进行配置,这个属于该项目私人的配置文件,不同于上面全局的settings.json,它存在于本项目的.vscode文件夹中,一开始是看不见的。还是shift+ctrl+p快捷键打开搜索,输入settings.json,打开工作区设置的那个。

 向其中添加配置信息,我的配置如下所示,多多少少与全局的settings.json中的配置有点重复冗余,如果觉得碍眼可以将重复配置的信息删除掉。

{
    "java.jdt.ls.java.home": "C:\\Program Files\\Java\\jdk1.8.0_181",
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-1.8",
            "path": "C:\\Program Files\\Java\\jdk1.8.0_181",
            "default": true
          }
      ],
    //maven、gradle的配置文件变更后自动更新
    "java.configuration.updateBuildConfiguration": "automatic",
    //java源文件路径
    "java.project.sourcePaths": [
        "src/main/java",
        "src/test/java",
    ],
    //关闭自动编译
    "java.autobuild.enabled": false,
    //关闭debug前强制编译
    "java.debug.settings.forceBuildBeforeLaunch": false,
    //在项目根目录下生成.classpath等配置文件
    "java.import.generatesMetadataFilesAtProjectRoot": true,
    //<!--配置maven, 换成maven安装目录下的相关配置 -->
    "maven.executable.path": "D:\\maven\\apache-maven-3.6.3\\bin\\mvn.cmd",
    "java.configuration.maven.userSettings": "D:\\maven\\apache-maven-3.6.3\\conf\\settings.xml",
    "maven.terminal.customEnv": [
        {
            "environmentVariable": "JAVA_HOME",      
            //<!--jdk安装根目录-->
            "value": "C:\\Program Files\\Java\\jdk1.8.0_181"
        }
    ],
    //使用Deploy插件来进行热部署时所需要的配置信息
    "deploy": {
        "packages": [
            {
                "name": "前端",
                "description": "webapp里面的所有文件",
                "files": [
                    "src/main/webapp/*",
                    "src/main/webapp/*/*",
                    "src/main/webapp/*.*",
                    "src/main/webapp/*/*.*",
                    "src/main/webapp/*/*/*.*",
                    "src/main/webapp/*/*/*/*.*",
                    "src/main/webapp/*/*/*/*/*.*",
                    "src/main/webapp/*/*/*/*/*",
                    "src/main/webapp/*/*/*/*/*/*.*",
                ],
                "exclude": [
                    "src/main/webapp/test/*"
                ],
                "deployOnSave": true,
                "useTargetList": true,
                "button": {
                    "text": "热部署",
                    "tooltip": "点击这里将前端部署到hotsite",
                    "targets": [ "HOTSITE" ]
                },
            }
        ],
        "targets": [
            {
                "type": "local",
                "name": "HOTSITE",
                "description": "A local folder",
                "dir": "target/SDDZYY/",
                "mappings": [
                    {
                        "source": "src/main/webapp",
                        "isRegEx": false,
                        "target": "/"
                    }
                ]
            }
        ]
    }
}

注意:下面的Deploy配置信息是使用Deploy插件必须要有的。其中的files是一个层级目录,目前必须这样一层一层的写来进行扫描。然后targets配置中的dir指明编译后前端文件的路径,这边指定到target中去,因为后面后端文件编译后也是存放到target中去,这样的话就可以整合成一个完整的项目了,再将其部署到tomcat中即可,就是为什么需要指定存放到target的原因。

5.补全项目结构代码与依赖导入

打开项目之后,文件目录并不完整,缺失了很多,maven的老毛病了,自己手动补全文件夹,工程目录如下

 然后将需要迁移的项目代码进行填充进去,后端Java代码放入到java文件夹中,前端页面代码放到webapp文件夹中,注意web.xml别忘了替换掉。

导入代码后会发现Java代码爆红了,是因为没有导入依赖所致,下面进行依赖导入。

由于是Maven项目,所以直接使用自带的pom.xml进行导入了,对于中央仓库上有的依赖包,直接点击Maven上的+号进行搜索添加对应的依赖即可。或者直接拷贝依赖的gav坐标到pom中也可以。

 如果需要导入本地的第三方jar包,就只能一个个手动导入了,全部添加到pom.xml中去。下面做一个依赖的结构示范。就是这样的格式一个个的导入即可。

<dependency>
        <groupId>fastjson-1.2.47</groupId>
        <artifactId>fastjson-1.2.47</artifactId>
        <version>1.2.47</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/fastjson-1.2.47.jar</systemPath>
      </dependency>

对了,还需要配置maven编译class文件的路径信息,也是在pom.xml中配置,在build标签下新增这几行。

<sourceDirectory>src/main/java</sourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <outputDirectory>${basedir}/target/SDDZYY/WEB-INF/classes</outputDirectory>

6.编译项目

下面开始编译项目,包括前端文件与后端文件

点击Maven选项卡中的compile来将后端文件编译成class文件,保存到target下的指定文件夹中去了。

 在工具的最底端,有一个热部署的按钮,只需要第一次的时候点击就可以了,以后更改项目文件的时候直接ctrl+s保存就会进行热部署,就不再需要按了。点击之后,会扫描之前settings.json中配置的文件路径,将其中的文件进行拷贝到target下的项目文件中,每次ctrl+s都会触发更新操作的。

 然后查看项目的target下的对应项目文件夹,后端文件被编译到了WEB-INF文件夹下面了。如下所示。

 7.配置Tomcat服务器并部署

OK,整体的工程已经部署完毕了,下面要将工程部署到Tomcat服务器上去了。安装Community Server Connectors插件之后会在控制栏多了一个SERVERS的选项卡,打开并添加服务器。

点击创建新的Server

 然后会询问你是否下载服务器,如果本机没有Tomcat的话就点击yes,然后选择对应版本下载就好了。由于我的机子上有Tomcat,直接点击No,user server on disk了。

然后这边会让你选择你本地的Tomcat安装路径,选择到该路径就可以了。 

然后会出现Tomcat的配置项,有需要可以改个名字啥的,然后无脑Finish即可。 

然后下面就会出现一个Tomcat了,下面进行项目部署。 

点击Add Deployment选项 

 选择File或者是Exploded,File就是文件,一般是用来选择war包的,还有一个是选择文件夹的,这边我们用到了热部署,会实时更新target,所以选择Exploded,指定到上面编译后的项目文件夹,即我的工程下的target/SDDZYY文件夹。

 

然后会让你选择是否配置参数,这边直接选择No即可。

 

然后就会发现对应Tomcat下面多了个项目,这就是咱部署的项目。

接下来先启动Tomcat,然后点击Publish Server(Full)进行项目发布

接下里就可以访问项目了,可以自己手动输入localhost:8080/项目地址,还有一种简单的办法。点击Server Actions选项卡。

选择Show in browser选项

会自动出现两个地址,点击第二个就可以自动打开浏览器并访问该地址。

因为使用了Dvploy插件,当你修改项目后,不管是前端页面文件还是后端的Java文件,只要修改了,然后ctrl+s保存下,Deploy就会工作,更新target对应的项目文件。然后浏览器刷新一下就可以展示出最新的结果,无需重启服务器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode中开发JavaWeb项目(Maven+Tomcat+热部署) 的相关文章

随机推荐

  • 数据库产生的背景

    市场上出现某个产品往往是为了满足大家啥需求 只有在某个需求背景下才会产生相应的产品来 当然也有人说再厉害点的公司是创造一种需求出来 但实际上也要人在潜意识里有那种需求才行的 人可能在潜意识里有很多需求 只不过他自己也不确切的知道 你通过一个
  • Type-c引脚定义

    Type c口是什么口 有什么作用 Type c口在大家的视野中或许比较陌生 但是生活中处处离不开Type c口的存在 手机 电脑 音箱 小家电 无人机 等等 都存在Type c接口 Type c只是一种物理接口的简称 满PIN 24PIN
  • YoloV8改进策略:让SeaFormer走进Yolov8的视野,轻量高效的注意力模块展现出无与伦比的魅力

    文章目录 摘要 论文翻译 摘要 1 简介 3 方法 3 1 总体架构 3 2 压缩增强轴向注意力 4 实验 4 1 实验设置 4 4 1 数据集 4 1 2 实现细节 4 2 与SOAT比较 4 3 消融研究 4 4 图像分类 4 5 时延
  • 如何零基础创建得物同款AR试鞋体验

    AR虚拟试鞋在近几年通过得物APP正式在C端市场中火了起来 并且逐渐成为各大电商平台的标配 下面就通过一篇零基础教程 手把手教大家如何创建AR试鞋体验 并接入自己的官网 APP或微信小程序 一 登录与创建场景 介绍一下本次AR试鞋体验制作用
  • LSTM时间序列回归matlab实现(附代码+数据集)

    原理部分 LSTM在1997年被提出 从发表时间上来看已经是个 老 方法了 和其他的神经网络一样 LSTM可用于分类 回归以及时间序列预测等 原理部分的介绍可参考这篇博客 本文主要涉及利用matlab实现LSTM 代码部分 任务 以青霉素发
  • WSL升级WSl2 以及更新内核组件

    WSL 升级 WSL2 查看当前WSL版本 打开PowerShell 执行命令 wsl l v 检查运行wsl2的系统要求 打开终端 Win R 后输入cmd 输入winver 版本高于18362即可 win10 家庭版需要安装 Hyper
  • (附源码)计算机毕业设计SSM会议管理系统

    附源码 计算机毕业设计SSM会议管理系统 项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支
  • http的七层协议

    socket 套接字 是通信的基石 是支持TCP IP协议的网络通信的基本操作单元 包含进行网络通信必须的五种信息 连接使用的协议 本地主机的IP地址 本地进程的协议端口 远地主机的IP地址 远地进程的协议端口 多个TCP连接或多个应用程序
  • LeetCode 2363. 合并相似的物品

    给你两个二维整数数组 items1 和 items2 表示两个物品集合 每个数组 items 有以下特质 items i value i i i weight i
  • 恒指市场新手的困惑,最新战法来解决。

    1 作为一个交易者 要想取得非凡成功 须具备哪些素质呢 所有取得辉煌成就的伟大的交易者都有着以下共同的特征及基本素质 1 坚韧的性格与成熟的心态 2 疯狂的热忱与专注 3 经市场充分验证了的盈利概率及赢利模式 4 铁的执行力 5 锲而不舍的
  • Openwrt 定制版修改固件显示信息

    在 usr lib lua luci version lua中找到 文件储存在 etc openwrt release上 local pcall dofile G pcall dofile G module luci version if
  • [974]python execjs execjs._exceptions.ProgramError: ReferenceError: navigator is not defined

    问题 execjs exceptions ProgramError ReferenceError navigator is not defined 解决办法 在js文档头部添加如下代码 global navigator userAgent
  • Docker解读(什么是容器)

    一 What Is A Container 容器映像是一个软件的轻量级独立可执行软件包 包含运行它所需的一切 代码 运行时 系统工具 系统库 设置 不管环境如何 集装箱化软件都可以运行相同的Linux和Windows应用程序 容器将软件与其
  • Cython编译python为so 代码加密

    1 编译出来的so比网上流传的其他方法小很多 2 language level 是python的主版本号 如果python版本是2 x 目前的版本Cython需要人工指定language level 3 python setup py bu
  • 全网最详细charles抓包工具详细教程,实战教程(细致)

    目录 导读 一 前言 二 在PC端抓https包 三 在PC端抓https包 四 在移动端抓http包 五 在移动端抓https包 一 前言 charles相当于一个插在服务器和客户端之间的 过滤器 当客户端向服务器发起请求的时候 先到ch
  • 英伟达GPU 解码&编码 能力

    来源https en wikipedia org wiki Nvidia NVDEC
  • Zygisk-Il2CppDumper 使用Android Studio运行gradle任务:module:assembleRelease编译

    使用Android Studio运行gradle任务 module assembleRelease编译 zip包会生成在out文件夹下 记录一下编译过程 虽然直接在GIT网上进行编译成功了 但还是想自己通过Android Studio来进行
  • wxWidgets开发之多线程wxThread编程

    上节说到使用wxCondition来实现某一消息处理的业务场景的多线程处理方法 在此之前先分享一下wxCondition用法 条件变量 最常用在多线程环境下 用来指示当前所在线程的某些条件已经满足 其他线程可以共享该线程的数据 或者去完成预
  • angular学习-自定义组件

    angular学习 自定义组件 1 命令ng g整理 2 自定义组件创建 3 自定义组件的使用 1 命令ng g整理 这个帖子讲的非常清楚 可以看一下 https www cnblogs com ckAng p 6693702 html 2
  • VSCode中开发JavaWeb项目(Maven+Tomcat+热部署)

    1 安装插件 首先需要安装所用到的插件 分别用来支持Java 热部署和Tomcat服务器的插件 在插件市场中搜索Java 第一个就是Extension Pack for Java 内置了6个依赖插件 直接一键安装即可 然后是热部署插件 市场