我正在构建java应用程序,突然发现编译有问题:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project sonda: Compilation failure: Compilation failure:
[ERROR] ..../service/UserService.java:[7,23] package org.apache.log4j does not exist
但是我之前构建过这个应用程序,一切都很好。另外,当我在Eclipse下使用tomcat运行这个应用程序时,它运行得很好。
在pom我有:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
你能帮帮我吗?
5条答案
按热度按时间c6ubokkw1#
更改log4j依赖项的范围以编译或删除它。
vwoqyblh2#
我遇到了同样的问题:
pom.xml:
生成错误:
package org.apache.log4j does not exist
根本原因:我需要在一个旧的JRE(JRE 1.5.x)上构建我的项目;当前的库显然是不兼容的。
解决方案:返回到旧版本的log4j.jar:
〈=编译成功!
ujv3wf0j3#
我在从log4j 1.x迁移到log4j 2.x时遇到了这个错误,并且意识到我仍然有一些代码只能在1.x中使用。为了保持兼容性,我没有重构代码,而是将这个依赖项添加到了pom.xml中。
zzwlnbp84#
在您的POM中删除此内容:
将其改为:
x4shl7ld5#
朋友这种类型的问题发生时,你是使用JRE,改变你的Java JDK的项目库的问题将被修复,你可以使用slf4j.