【发布时间】:2022-01-16 21:23:36
【问题描述】:
如果这是一个重复的问题,我必须道歉,但我先用谷歌搜索了没有得到有用的答案。
说明
今天我正在尝试从IDEA迁移到VS Code,但是在VS Code中运行非spring Maven项目时,它不会在pom.xml中运行依赖项,我只能在控制台中获得Exception in thread "main" java.lang.NoClassDefFoundError .
这里我将提供一个简单的例子:
下图项目使用fastjson解析一个Map to JSON字符串,fastjson是定义在pom.xml的maven仓库。
项目结构
App.java
package com.example;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
public class App {
public static void main(String[] args) {
Map<String, String> item = new HashMap<>();
item.put("a", "1");
item.put("b", "2");
System.out.println(JSON.toJSONString(item));
}
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1</version>
<name>demo</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
</dependencies>
</project>
VS Code 中显示的 Maven 依赖项
尝试在 VS Code 中使用Run and Debug 运行项目
结果
看! VS Code 没有正确运行这个 Maven 项目,它没有运行 pom.xml 中的依赖项!
琐事
- 我已经为 VS Code 安装了
Extension Pack for Java - 我什至为 VS Code 安装了
Spring Boot Extension Pack - 我已经安装了Maven并配置了相应的环境变量,
mvn命令可以在控制台运行 - 上述项目在 IDEA 中运行正常
- Spring项目在VS Code中可以正常运行,但是问题项目是maven没有Spring
帮助
我是否错过了 VS Code 运行 Maven 项目的一些配置?我应该怎么做才能让它在 VS Code 中正确运行?
【问题讨论】:
-
你定义的类
import com.alibaba.fastjson.JSON;根本不存在......这意味着它不能从给定的依赖中获得...... -
@khmarbaise 不,它存在,我这里只是用它作为例子,你可以将它更改为任何其他 maven 依赖项,你会发现在 VS Code 中也无法使用它们运行。我说这个示例项目可以在 IDEA 中运行。和这个fastjson无关。
标签: java maven visual-studio-code