自从很长一段时间以来,我最近又回到了Java开发领域,我正试图将一个旧项目升级到一个新的Java版本。这个项目使用EJML库,但我似乎无法消除VisualStudio代码中的错误消息。我已经将我所面临的问题提炼成一个展示该问题的最小工作示例。
此示例由三个文件组成:
pom.xml
<?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>mwe</groupId>
<artifactId>mwe</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.17</maven.compiler.source>
<maven.compiler.target>1.17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-all</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-core</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-cdense</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-ddense</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-fdense</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-zdense</artifactId>
<version>0.43.1</version>
</dependency>
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-simple</artifactId>
<version>0.43.1</version>
</dependency>
</dependencies>
</project>
src/main/java/module-info.java
module mwe {
requires ejml.all;
requires ejml.core;
requires ejml.cdense;
requires ejml.ddense;
requires ejml.fdense;
requires ejml.zdense;
requires ejml.simple;
exports mwe;
}
src/main/java/mwe/Main.java
package mwe;
import org.ejml.data.DenseMatrix64F;
import org.ejml.ops.CommonOps;
public class Main {
public static void main(String[] args) {
double[][] aArray = new double[][] {
{1, 1},
{1, 2}
};
DenseMatrix64F a = new DenseMatrix64F(aArray);
DenseMatrix64F t = new DenseMatrix64F(2, 2);
CommonOps.invert(a, t);
}
}
我无法消除的错误消息首先声明导入无法解析,因此,我在使用此类的行中也会收到错误消息,声明它们无法解析为类型。
我尝试过各种变体(例如
ejml-all
作为依赖项),但错误消息仍然存在。我甚至不知道如果不重建库以包含模块信息,这是否真的可以解决,但由于我不是EJML的所有者,我认为这不是解决这个问题的理想方法。
我是不是错过了什么?有简单的解决方案吗?这仅仅是使用Visual Studio代码的问题,还是其他编辑器也会出现这种情况?