课程为CS 61B Spring 2021,请注意时间
记得保留文件夹原来的结构,因为提交到Gradescope时只会根据原来的文件夹结构进行测试
通过settings.xml设置本地仓库
上面这张图片是CS61B告诉我们IntelliJ如何设置本地仓库。而在vscode中,需要通过settings.xml来实现。
<!-- CS61B Maven settings.xml -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 关键:把本地仓库改成课程提供的 javalib 目录 -->
<localRepository>你的路径\cs61b\CS-61B-Spring-2021\library-sp21\javalib</localRepository>
</settings>
创建settings.xml,然后把它放到你的仓库。我的路径是C:\Users\TMname1\Desktop\cs61b\CS-61B-Spring-2021\lab2setup。那么我就把settings.xml放在C:\Users\TMname1\Desktop\cs61b\CS-61B-Spring-2021,然后vscode->设置->输入maven user settings->输入你的settings.xml的相对路径

如果设置正常,你的library-sp21应该会下载一些文件(我也不知道为什么)

设置代码源和测试源路径
如果你的报错信息是这句
Dog.java is not on the classpath of project lab2setup, only syntax errors are reported
证明代码源没有设置,因此我们要手动设置classpath。
首先把pom.xml的<build>部分注释掉,防止它影响我们的路径和插件。
<?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>
<parent>
<groupId>CS61B</groupId>
<artifactId>61BMasterPom</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../library-sp21/javalib/masterpom.xml</relativePath>
</parent>
<groupId>CS61B</groupId>
<artifactId>lab2setup</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- <build>
<sourceDirectory>${project.basedir}</sourceDirectory>
<testSourceDirectory>${project.basedir}</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.9</source>
<target>1.9</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgs>
<arg>-J-XX:+ShowCodeDetailsInExceptionMessages</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build> -->
</project>
然后你的文件夹结构需要设置成如下
src
├─main
│ └─java
│ │ └─Dog-Dog.java
│ └─test
│ └─java
│ └─Dog-DogTest.java
在vscode的搜索框输入:>java: Configure Classpath

如图所示设置路径为src\main\java和src\test\java,理论上maven会自动识别这两个路径,但是我试了几遍都没有识别。理论上现在是手动设置可以随便取路径名,但是为了标准,还是按照这个路径好点。
2025/09/24,现在又能成功识别了,真神奇。
如果你的设置没问题,理论上是可以成功运行测试的。


package不匹配
如果你的报错信息是这句
The declared package "Dog" does not match the expected package ""
证明你的路径有问题。理论上你的路径应该是
"classpath\packageName\fileName"
例如上面设置的classpath='src\main\java',packageName=Dog,fileName=Dog.java,分别带入就得到我们的路径为src\main\java\Dog\Dog.java。
而src\main\java\Dog.java就会报错The declared package "Dog" does not match the expected package ""
前面路径完全没有设置或不对就会报错Dog.java is not on the classpath of project lab2setup, only syntax errors are reported
之后课程的配置都如法炮制即可
提交到Gradescope时把修改好的文件复制一份替换原路径的原文件即可