Bas*_*que 2 java intellij-idea maven assertj
与其他一些问题类似,我发现 IntelliJ 神秘地拒绝识别 AssertJ 库。我再次询问,因为(a)我尝试了各种建议,并且(b)我有一个非常简单的例子,任何人都可以尝试自己。
在 IntelliJ 2018 和 IntelliJ 2019 预发布版中,我使用 Maven 原型maven-archetype-quickstart版本 1.4创建了一个新项目。
AssertJ 3 需要 Java 8。所以我将 POM 中的这两行更改为1.7to 11。
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
Run Code Online (Sandbox Code Playgroud)
我将其添加到 POM 中:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
使用IntelliJ 中的Maven面板,我执行了一个clean和install.
看起来不错。我验证org.assertj:assertj-core:3.11.1库出现在IntelliJ的项目面板中。应用程序运行,Hello World出现在 IntelliJ 的控制台上。
在App.java文件中,我添加了这个import语句。
import static org.assertj.core.api.Assertions.* ;
Run Code Online (Sandbox Code Playgroud)
IDE 编辑器中报告的错误:
无法解析符号“断言”
有些人建议损坏的 Maven 缓存。所以我退出了 IntelliJ,并删除了.m2我的主文件夹中的文件夹。我在 IntelliJ 中重新打开我的项目,并重新执行 Maven clean& install. 许多东西都在下载,所以我知道 Maven 缓存确实正在重新创建。
然而,我的编辑器中仍然存在错误,Cannot resolve symbol 'Assertions'.
不涉及 Java 模块,因为quickstart原型尚未为此更新。
<scope>test</scope>该主题已在AssertJ 问题跟踪器上的已关闭故障单 # 520中得到解决。
当 Maven 依赖项带有scope值为 的元素时test,这意味着您不能在特定于测试的源包/文件夹之外使用该库。
如果您尝试从示例项目的src/main/java/…文件夹层次结构中的代码调用 AssertJ ,您将看到该错误。如果您从 调用 AssertJ src/test/java…,您将看到成功。
要在src/main/java/…文件夹层次结构中启用 AssertJ ,请删除scopePOM 依赖项中的元素。所以这:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
……变成这样:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3072 次 |
| 最近记录: |