如何在 Eclipse 中使用模块化项目的 .classpath?

How to use the .classpath of a modular project in Eclipse?

我创建了一个具有以下结构的测试项目:

baseTest
   |- src/main/java
   |  |- com.base
   |  |  |- MainDependency.java
   |  |- module-info.java
   |- src/test/java
      |- test.com.base
         |- SomeTest.java

module-info.java 只是一个空模块声明:

module com.baseTest {
}

MainDependency.java也一样:

package com.base;

public class MainDependency {
}

SomeTest 是 class 依赖于 main 和 JDK:

的代码
import java.util.logging.Logger;

import com.base.MainDependency;

public class SomeTest {

    String s;
    MainDependency md;
    Logger j;
}

.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="src" path="src/test/java"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
        <attributes>
            <attribute name="module" value="true"/>
            <attribute name="add-exports" value="java.logging/java.util.logging=ALL-UNNAMED"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="bin"/>
</classpath>

使用上面的配置,我得到一个 The import java.util.logging cannot be resolved 错误。删除 <classpathentry kind="src" path="src/main/java"/> 会删除错误(可能是因为该项目不再被视为模块化)。

我在 Eclipse 中发现了 bug 526831,但从那里看来它并不是真正的错误(?)。我在项目设置或配置方面做错了什么吗?

module-info.java 中必须指定所需的模块 java.logging(而不是 .classpath 中的 <attribute name="add-exports" value="java.logging/java.util.logging=ALL-UNNAMED"/>) :

module com.baseTest {
    requires java.logging;
}

Eclipse 为此提供了快速修复 (Ctrl+1):将 'requires java.logging' 添加到模块-info.java.