课程为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的相对路径

vscode配置图片

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

download

设置代码源和测试源路径

如果你的报错信息是这句

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

Project-settings

如图所示设置路径为src\main\javasrc\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时把修改好的文件复制一份替换原路径的原文件即可