Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse Java 11:为什么;无法解决导入xxx问题”;即使模块信息通知它是必需的_Eclipse_Java 9_Java 11 - Fatal编程技术网

Eclipse Java 11:为什么;无法解决导入xxx问题”;即使模块信息通知它是必需的

Eclipse Java 11:为什么;无法解决导入xxx问题”;即使模块信息通知它是必需的,eclipse,java-9,java-11,Eclipse,Java 9,Java 11,我从Java9开始就阅读了模块化。我知道我必须创建一个模块info和info,以确定哪个包是公开的和必需的。我可以看到我的类路径上确实有Java11。但我得到了这个主题中提到的错误。更准确地说,在构建时,我得到了这个错误日志 INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ zuul --- [WARNING] Can't extract module name from xpp3_min-1.1.4c.jar:

我从Java9开始就阅读了模块化。我知道我必须创建一个模块info和info,以确定哪个包是公开的和必需的。我可以看到我的类路径上确实有Java11。但我得到了这个主题中提到的错误。更准确地说,在构建时,我得到了这个错误日志

INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ zuul ---
[WARNING] Can't extract module name from xpp3_min-1.1.4c.jar: Provider class org.xmlpull.mxp1.MXParser,org.xmlpull.mxp1_serializer.MXSerializer not in module
[WARNING] ********************************************************************************************************************
[WARNING] * Required filename-based automodules detected. Please don't publish this project to a public artifact repository! *
[WARNING] ********************************************************************************************************************
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to C:\_d\WSs\soteste\zuul\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /C:/_d/WSs/soteste/zuul/src/main/java/module-info.java:[24,18] module not found: common
[INFO] 1 error
我缺少一些额外的设置,以便使公共项目中的类对其他项目可见

PS1:我遵循并设置了替代JRE。 PS2:我不认为这与Eclipse有关。顺便说一句,我正在使用这个版本:

面向企业Java开发人员的Eclipse IDE。 版本:2018-12(4.10.0) 构建id:20181214-0600 操作系统:Windows 10、v.10.0、x86_64/win32 Java版本:11.0.2

在我的zuul项目中:

import com.test.common.security.JwtConfig;

@EnableWebSecurity  
public class SecurityTokenConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private JwtConfig jwtConfig;

module-info.java

module zuul {
...
    requires common;

}
module common {
    exports com.test.common.security;
    exports com.test.common;
...
}
在我的共同项目中

@Getter
@ToString
public class JwtConfig {

module-info.java

module zuul {
...
    requires common;

}
module common {
    exports com.test.common.security;
    exports com.test.common;
...
}

我发现了问题。对其他更有Java9+经验的人来说,这可能看起来很愚蠢,但对我来说,我花了一段时间才找到根本原因。希望它能对未来的读者有用

问题:公共项目位于类路径而不是模块路径中

解决方案是:当我移交时,只需按照Eclipse的建议移动到模块路径;当我移交import com.test.common.security.JwtConfig时,在module-info.java中;在SecurityTokenConfig.java上,所提出的解决方案与我移交module-info.java时的解决方案完全不同(也许对Eclipse团队的一个适度建议是从现在开始重新查看它,但它超出了这个问题的目的)

归功于

***编辑

虽然我仍然把上述解决方案看作是对我的问题的答案,但我必须承认,在解决了这个问题之后,我偶然发现了一个新的问题,我意识到,至少对于我来说,即使使用java 11,我也必须避免模块化(JigScW)。未来的读者可能也会对这篇文章感兴趣