vs code 运行第一个简单的 java maven springboot 项目
1. 首先去 Visual Studio Code 官网下载并安装,安装过程可以选择语言;
2.安装完成之后,启动应用.
2.1 首先配置本地环境「 Ctrl + , 」:
基本配置如图所示,其中「用户设置」为全局设置,「工作区设置」作用域为本项目,箭头所指为必须配置的:
2.2 配置本地 maven 镜像仓库,推荐阿里仓库,修改 settings.xml:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
3. 扩展插件,下载完重新加载或重启以重新加载插件:
Java 相关插件主要有:
1. Language support for Java ™ for Visual Studio Code
2. Java Extension Pack
3. Debugger for Java
4. Java Test Runner
5. Maven for Java,
6. Spring Boot Extension Pack
7. Spring Boot Support
个人推荐:
1. Lombok Annotations Support for VS Code. (简化POJO)
4. VS Code 创建第一个 Spring Boot 项目
4.1 创建项目
1. 打开命令选项板「Ctrl + Shift + P」;
2. 键入Spring Initializr 开始生成Maven项目;
3. 按照向导执行,选择依赖包,我在这选了 devTools(热部署扩展包)和 web两个。
创建完成,项目目录如下图:
4.2 创建文件HelloController.java用于测试,代码如下:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/index")
public class HelloController {
@RequestMapping("/")
String home() {
return "Hello World!";
}
}
5. 配置启动项,点击「调试」界面中下拉框 -> 「添加配置」按钮,VS Code 会给你自动配好。
我的配置截图如下 :
6.按下绿色的启动按钮来启动项目,启动成功效果图如下:
7. 遇到的坑:
7.1 第一次启动报错:java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
原因:缺少依赖包。
解决方案 - 加入如下依赖:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
<scope>provided</scope>
</dependency>
7.2 第二次启动报错:java.lang.AbstractMethodError: ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/Context;Lch/qos/logback/core/pattern/Converter;)V
原因:logback-classic和logback-core的版本必须一致。
解决方案 - 完善依赖包,使logback-classic和logback-core的版本保持一致,exclusion作用为屏蔽自己logback-classic的版本。最终依赖如下:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>