Netbeans+;Java 9模块&x2B;Log4j 2.11=未找到模块
我使用Apache Netbeans 9 Beta 9(2018年2月22日)。我有一个Java9模块应用程序。我想将Netbeans+;Java 9模块&x2B;Log4j 2.11=未找到模块,java,maven,netbeans,log4j,java-9,Java,Maven,Netbeans,Log4j,Java 9,我使用Apache Netbeans 9 Beta 9(2018年2月22日)。我有一个Java9模块应用程序。我想将log4j2集成到我的应用程序中。这是我的modile info.java module ru.itlect.remka.agent { exports ru.itlect.remka.agent; requires ru.itlect.remka.commons; requires org.apache.logging.log4j.core;
log4j2
集成到我的应用程序中。这是我的modile info.java
module ru.itlect.remka.agent {
exports ru.itlect.remka.agent;
requires ru.itlect.remka.commons;
requires org.apache.logging.log4j.core;
requires org.apache.logging.log4j;
requires static spring.context;
requires java.logging;
requires java.xml;
requires java.sql;
requires java.desktop;
requires java.naming;
requires java.rmi;
requires static javafx.graphics;
requires static javafx.controls;
}
Netbeans说找不到org.apache.logging.log4j
模块。尽管org.apache.logging.log4j.core
可以。当我构建项目时,它是成功构建的。因此,问题在于Netbeans本身java——列出模块
说明org.apache.logging.log4j
位于log4j-api-2.11.0.jar
中。
如果我键入requereslog
Netbeans建议log4j.api
哪个自动模块名为log4j-api-2.11.0.jar
。虽然Netbeans说,log4j.api
也没有找到
我可以接受module-info.java中的常量错误消息,但Netbeans在log4j-api-2.11.0.jar中看不到任何类,因此我在使用记录器的任何类中都有错误如何让Netbeans看到模块?
这是my pom.xml中的一部分:
<dependencies>
<!-- Ремка -->
<dependency>
<groupId>ru.itlect.remka</groupId>
<artifactId>commons</artifactId>
<version>1.0.0</version>
</dependency>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<!-- Аннотации -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Logs -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>
ru.itlect.remka
平民
1.0.0
org.springframework
spring上下文
5.0.6.1发布
org.springframework
弹簧网
5.0.6.1发布
javax.annotation
javax.annotation-api
1.3.1
org.apache.httpcomponents
httpclient
4.5.5
公用记录
公用记录
org.apache.logging.log4j
log4japi
2.11.0
org.apache.logging.log4j
log4j型芯
2.11.0
我在更新某些应用程序以使用Log4j2 V2.11.1作为模块时也遇到了问题。我创建了一个简单的测试用例,并在Netbeans用户邮件列表中提出了它
今天早些时候,在最新版本的Netbeans 9中发现并修复了一个bug,格尔特扬今天早上批准了这项计划,他解释道。邮件列表()包含在修复程序合并到新版本之前解决问题的建议。新版本正在进入该过程。开发人员将感谢社区帮助更快地完成它,这可能是最好的方法
如果您需要即时解决方案,讨论中建议的一种方法是编辑jar文件,将module-info.class文件移动到根结构中。模块名org.apache.logging.log4j是正确的。log4japi是一个新的API,它在versions/9/module.info.class
中定义了它的名称-我猜NetBeans处理得不太好。这里也是这样。我真的很想知道为什么maven导入的模块在module-info.java中是必需的(我真的很想把jigsaw放在一个非常遥远的太空中)。Log4j 2.9不支持java 9模块。因此,NetBeans和Java都将其视为一个自动模块。