【发布时间】:2019-01-27 22:27:00
【问题描述】:
与其他一些问题类似,我发现 IntelliJ 神秘地拒绝识别 AssertJ 库。我再次询问,因为 (a) 我已经尝试了各种建议,并且 (b) 我有一个非常简单的示例,任何人都可以自己尝试。
在 IntelliJ 2018 和 IntelliJ 2019 预发布版中,我使用 Maven 原型 maven-archetype-quickstart 1.4 版创建了一个新项目。
AssertJ 3 requires Java 8。所以我将 POM 中的这两行 1.7 更改为 11。
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
我将这个添加到 POM:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
<scope>test</scope>
</dependency>
使用 IntelliJ 中的 Maven 面板,我执行了 clean 和 install。
看起来不错。我验证 org.assertj:assertj-core:3.11.1 库出现在 IntelliJ 的 Project 面板中。应用程序运行,Hello World 出现在 IntelliJ 的控制台上。
在App.java 文件中,我添加了这个import 语句。
import static org.assertj.core.api.Assertions.* ;
IDE 编辑器报错:
无法解析符号“断言”
有些人认为 Maven 缓存已损坏。所以我退出了 IntelliJ,并删除了主文件夹中的 .m2 文件夹。我在 IntelliJ 中重新打开我的项目,并重新执行 Maven clean 和 install。许多东西正在下载,所以我知道 Maven 缓存确实正在重新创建。
然而,我的编辑器中仍然存在错误,Cannot resolve symbol 'Assertions'。
不涉及 Java 模块,因为尚未为此更新 quickstart 原型。
【问题讨论】:
-
如果您有一个模块化项目,请不要忘记将
requires org.assertj.core;添加到您的module-info文件中。 -
@JornVernee 谢谢,但没有 Java 模块。 Maven
quickstart原型尚未针对模块进行更新。我在问题中澄清了。刚刚发布后,我找到了解决方案:依赖项上的test范围仅限制对测试类的访问。删除test范围会打开 AssertJ 以在您的主应用程序中使用。
标签: java maven intellij-idea assertj