我在Eclipse 2020-03版本和一个具有以下pom.xml
的Maven项目中遇到一个奇怪的问题:
<?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>
<groupId>org.demo</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myapp</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.netbeans.modules</groupId>
<artifactId>org-netbeans-core-network</artifactId>
<version>RELEASE113</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
</project>
和一个Java类:
package org.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApplication {
private static final Logger logger = LoggerFactory.getLogger(MyApplication.class);
public static void main(String[] args) {
try {
// whatever here
} catch (Exception e) {
logger.warn("Failed to set Windows L&F, use the default look and feel", e);
}
}
}
该项目可以从命令行编译良好,但是在Eclipse IDE中,我在logger.warn
行遇到了编译错误:
无法解析类型java.lang.String。是间接的 从所需的.class文件中引用
Java编译器由AdoptOpenJDK v11.0.4提供。
如果我删除了org-netbeans-core-network
依赖项,那么一切都可以正常编译,所以这是罪魁祸首。
此外,将Java版本从11降级到1.8会使错误消失。
到目前为止,我尝试删除/添加JRE系统库,清理项目,关闭并重新打开。到目前为止,什么都没有。
有人知道吗?
我在Eclipse早期版本(如2019-09)中遇到了相同的错误。
更新
我已经填写了bug