https://code.visualstudio.com/docs/java/java-tutorial
VSCode中开发JavaWeb项目(Maven+Tomcat+热部署)_vscode运行javaweb项目_陌路skr的博客-CSDN博客
【VScode】Windows10上用Community Server Connector配置Tomcat并部署Maven项目 - 知乎
配置好环境变量JAVA_HOME
打开vscode,安装java相关插件
当然,还有更多的Java插件,开发者可以根据自己的需求和偏好,在「Marketplace」中自行下载和配置。
官方链接:https://marketplace.visualstudio.com/vscode
===============================安装==================================================
A. 安装Java Extension Pack这个集成了一下插件:(必须)
Language Support for Java™ by Red Hat
Debugger for Java
Java Test Runner
Maven for Java
IntelliCode
Java Dependency Viewer
B. 其他插件
Deploy插件(必须) Deploy插件配置在后面
Community Server Connectors 插件
Lombok Annotations Support for VS Code. (简化POJO)
============================配置================================
// Java相关配置信息
"java.configuration.runtimes": [
{
"name": "JavaSE-19",
"path": "/usr/local/java",
"default": true
}
],
"java.jdt.ls.java.home": "/usr/local/java",
//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的相关配置信息
"java.configuration.maven.globalSettings": "/usr/local/maven/apache-maven-3.8.6/conf/settings.xml",
"java.maven.downloadSources": true,
"java.configuration.maven.userSettings": "/usr/local/maven/apache-maven-3.8.6/conf/settings.xml",
"maven.executable.path": "/usr/local/maven/apache-maven-3.8.6/bin/mvn",
"maven.settingsFile": "/usr/local/maven/apache-maven-3.8.6/conf/settings.xml",
"maven.executable.options": "-DarchetypeCatalog=internal",
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/target": true,
"**/logs": true
},
"maven.terminal.customEnv": [
{
"environmentVariable": "JAVA_HOME",
//<!--jdk安装根目录-->
"value": "/usr/local/java"
}
],
Deploy插件配置信息
//使用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/demo/",
"mappings": [
{
"source": "src/main/webapp",
"isRegEx": false,
"target": "/"
}
]
}
]
},
C. 创建maven项目
点击创建Java项目,选择其中的Maven工具,由于是创建的JavaWeb项目,所以直接选择webapp即可。
接下来版本选默认第一个的1.4即可,然后输入自定义groupId和artifactId。确定之后会选择项目的存放路径,然后Maven就开始构建项目了。
如果看不到这个按钮可以 ctrl+ship+p
注意到此需要按一下回车来继续,并不是构建卡死了
之后还有一个确认,输入y或者回车都可以来继续
最后出现BuildSuccess即表示项目构建成功,点击右下方的open即可打开工程
4.配置该项目的settings.json
项目打开后,先对该项目的settings.json文件进行配置,这个属于该项目私人的配置文件,不同于上面全局的settings.json,它存在于本项目的.vscode文件夹中,一开始是看不见的。还是shift+ctrl+p快捷键打开搜索,输入settings.json,打开工作区设置的那个。
向其中添加配置信息,我的配置如下所示,多多少少与全局的settings.json中的配置有点重复冗余,如果觉得碍眼可以将重复配置的信息删除掉。
补全项目结构代码与依赖导入
打开项目之后,文件目录并不完整,缺失了很多,maven的老毛病了,自己手动补全文件夹,工程目录如下
主要在main下创建 java resources两个目录
然后将需要迁移的项目代码进行填充进去,后端Java代码放入到java文件夹中,前端页面代码放到webapp文件夹中,注意web.xml别忘了替换掉。
导入代码后会发现Java代码爆红了,是因为没有导入依赖所致,下面进行依赖导入。
由于是Maven项目,所以直接使用自带的pom.xml进行导入了,对于中央仓库上有的依赖包,
直接点击Maven上的+号进行搜索添加对应的依赖即可。或者直接拷贝依赖的gav坐标到pom中也可以。
如果需要导入本地的第三方jar包,就只能一个个手动导入了,全部添加到pom.xml中去。下面做一个依赖的结构示范。就是这样的格式一个个的导入即可。
对了,还需要配置maven编译class文件的路径信息,也是在pom.xml中配置,在build标签下新增这几行。
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<outputDirectory>${basedir}/target/DEMO/WEB-INF/classes</outputDirectory>
在 pom.xml 中plugins下的添加以下代码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
编译项目
下面开始编译项目,包括前端文件与后端文件
点击Maven选项卡中的compile来将后端文件编译成class文件,保存到target下的指定文件夹中去了
在工具的最底端,有一个热部署的按钮,只需要第一次的时候点击就可以了,以后更改项目文件的时候直接ctrl+s保存就会进行热部署,就不再需要按了。
点击之后,会扫描之前settings.json中配置的文件路径,将其中的文件进行拷贝到target下的项目文件中,每次ctrl+s都会触发更新操作的。
然后查看项目的target下的对应项目文件夹,后端文件被编译到了WEB-INF文件夹下面了。如下所示。
-------------------使用 tomcat 调试 web 项目-------------
安装 Community Server Connectors 插件 后点击侧边栏 TOMCAT SERVERS 右边 + 号,选择本地安装的 tomcat。
Community Server Connectors配置
//Community Server Connectors配置
"redhat.telemetry.enabled": true,
"rsp-ui.enableStartServerOnActivation": [
{
"id": "redhat.vscode-community-server-connector",
"name": "Community Server Connector",
"startOnActivation": true
}
],
OK,整体的工程已经部署完毕了,下面要将工程部署到Tomcat服务器上去了。
安装Community Server Connectors插件之后会在控制栏多了一个SERVERS的选项卡,打开并添加服务器。
点击创建新的Server
然后会询问你是否下载服务器,如果本机没有Tomcat的话就点击yes,然后选择对应版本下载就好了。
由于我的机子上有Tomcat,直接点击No,user server on disk了。
然后这边会让你选择你本地的Tomcat安装路径,选择到该路径就可以了
然后会出现Tomcat的配置项,有需要可以改个名字啥的,然后无脑Finish即可。
后下面就会出现一个Tomcat了,下面进行项目部署。
打包项目
- ctrl+shift+P,输入maven,点击执行命令,选择package
添加项目到Tomcat服务器中
- 右键点击Tomcat 9.x(started)(unknown),选择Add Deployment添加部署,选择target\demo.war
- 选择No(不修改参数)
- 右键点击Tomcat 9.x(started)(unknown),选择Publish Server(Full)
点击Add Deployment(部署)选项
然后就会发现对应Tomcat下面多了个项目,这就是咱部署的项目。
接下来先启动Tomcat,然后点击Publish Server(Full)进行项目发布
接下里就可以访问项目了,可以自己手动输入localhost:8080/项目地址,还有一种简单的办法。点击Server Actions选项卡
==============================================================
tomcat配置 /usr/local/tomcat/conf/server.xml在Engine元素中增加如下配置
<!-- 第二个同端口虚拟机 -->
<Host name="localhost.tomcat-study.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="study_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="Study.war" reloadable="true" deubg="0" />
</Host>
注意都是用的war包
vscode
修改域名
{
"args.override.boolean": "false",
"args.program.override.string": "start",
"args.vm.override.string": "-Djava.util.logging.config.file=/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dcatalina.base= -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/temp",
"id": "Tomcat 9.x",
"id-set": "true",
"org.jboss.tools.rsp.server.typeId": "org.jboss.ide.eclipse.as.server.tomcat.90",
"server.base.dir": "/usr/local/tomcat",
"server.deploy.dir": "${server.base.dir}/webapps/",
"server.home.dir": "/usr/local/tomcat",
"server.http.host": "localhost.tomcat-study.com",//修改这里
"server.http.port": "8080",
"deployables": {
"/home/liwu/project/java/Study/target/Study.war": {
"label": "/home/liwu/project/java/Study/target/Study.war",
"path": "/home/liwu/project/java/Study/target/Study.war",
"options": {}
}
}
}
配置完毕后: 操作步骤 按照如下顺序执行
------------------------------------------------------
以下解决Maven项目导入Vs Code 后在资源管理器不能加载出Maven标签项的问题。问题如下:
解决方案如下:
在资源管理器项目标签项下方的空白处右键:
选择“从Maven原型创建新项目”后,就会马上在资源管理器下发加载出MAVEN标签项,
按ESC键取消命令行的输入选择,点击MAVEN标签项,maven项目就会加载出来了。就可以像Intellij idea的Maven项目一样进行管理了
选择“从Maven原型创建新项目”后,就会马上在资源管理器下发加载出MAVEN标签项,
按ESC键取消命令行的输入选择,点击MAVEN标签项,maven项目就会加载出来了。就可以像Intellij idea的Maven项目一样进行管理了