当我们从Maven artifact启动IntelliJ时遇到的问题

编辑器无法识别智能感知和库。

我正在使用IntelliJ,当我从生成Maven artifact开始项目时,编辑器甚至无法识别智能感知功能,而且即便是Maven任务可以编译,编辑器也无法识别。我犯愁了一段时间,但是根据这个提示解决了问题。

    IntelliJ not able to resolve classes of external Libraries for Maven projects

最後,归根结底,到头来

项目右键点击 > Maven > 重新导入

解决了。(我不知道那个)

顺便提一下,在进行调查之前,虽然与此无关,但我对源文件夹和测试文件夹进行了设置。
可以在选择项目后,通过File > Project Settings > Modules > Source来进行设置。

但我认为可能会通过ReImport来解决。

在IntelliJ上运行Kafka Client时出现slf4j错误。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

我遇到了个烦人的问题。当我查看上述网址时,得知应该将库添加到pom.xml中。博客和Stack Overflow也都这么说,但我完全解决不了。然而,我不知不觉中解决了。可能是因为我本应该使用添加库的设置,但当时却看了旧的设置,现在已经无法确定原因了。

   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <version>1.7.25</version>
    </dependency>

在 pom.xml 中添加上述内容,并尝试使用 clear、install 和 compile 等命令进行修复,但没有成功。因此,我试图手动进行确认,并安装了下面的插件。虽然有点折腾,但是很久没有用 IntelliJ 进行执行了,虽然不知道为什么,但是它可以正常工作。

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.2.1</version>
          <configuration>
            <mainClass>simplearchitect.App</mainClass>
          </configuration>
        </plugin>
    • SLF4J warning or error messages and their meanings

 

    Solving Failed to load class “org.slf4j.impl.StaticLoggerBinder” Error

也许是因为我不了解IntelliJ的工作方式。这个库不是从IntelliJ中引用,而是一个插件,用于手动运行应用程序,同时参考Maven的依赖项。在我这里使用”mvn exec:java”命令运行正常。

顺便说一句,要了解目标库的版本,请

mvn dependency:tree

或者,您可以在IntelliJ的maven面板上进行确认。

错误:java: javacTask:源发布8需要目标发布1.8。

因为使用artifact生成的模板是1.7版本,所以需要修改pom.xml文件。

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

然而,仅有这些是不够的,还需要进行上述的重新导入。因为项目的偏好设置 > 构建、执行、部署 > 编译器 > Java编译器中的目标字节码版本仍然是过时的。

为了不忘记,记个备忘录

广告
将在 10 秒后关闭
bannerAds