Maven中的编译测试和全新安装有什么区别

what is the difference between compile test and clean install in maven

我正在使用放心库来自动化 API。

从昨天开始我就在挣扎。

我在全新安装时遇到错误,如下所示:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project rest-assuredProject: Compilation failure: Compilation failure: [ERROR] /D:/Workspace/rest-assuredMaven/src/basics/twitterAPI.java:[12,22] package io.restassured does not exist [ERROR] /D:/Workspace/rest-assuredMaven/src/basics/twitterAPI.java:[14,31] package io.restassured.response does not exist [ERROR] /D:/Workspace/rest-assuredMaven/src/basics/twitterAPI.java:[16,29] cannot find symbol [ERROR] symbol: class RestAssured

今天我引用了一个底层线程

Maven Compilation error [package org.testng.annotations does not exist]

其中一个答案说使用编译测试而不是全新安装。 猜猜它是如何开始工作的。即使只是 test 也能正常工作。现在我想知道为什么会这样

我观察到它们是脚本中存在的一些静态导入。 示例:

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

是因为一样吗?

此外,如果我需要进一步即兴发挥,请告诉我

RestAssured class 由 rest-assured 神器提供。您的依赖项中没有工件,并且 none 的编译范围依赖项依赖于它,这就是安装不知道它的原因。

测试之所以有效,是因为您的测试范围依赖项之一 (spring-mock-mvc) 依赖于 rest-assured 工件。所以我看到的解决方案是将 rest-assured 工件添加到您的编译范围依赖项中:

<dependencies>
    ... current content ...

    <!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured -->
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>3.0.6</version>
    </dependency>
</dependencies>