问题描述
我正在构建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
,但我之前构建了此应用程序,一切都还好.此外,当我使用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>
你能帮我吗?
推荐答案
更改log4j依赖的范围以编译或删除它.
其他推荐答案
我遇到了完全相同的问题:
pom.xml:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.3</version> </dependency>
构建错误:package org.apache.log4j does not exist
根本原因:我需要针对较旧的JRE(JRE 1.5.x)构建项目;当前的库显然不兼容.
解决方案:back-rev to log4j.jar的旧版本:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
<=成功地编译!
其他推荐答案
我在从log4j 1.x到log4j 2.x迁移时遇到了此错误,并意识到我仍然有一些仅适用于1.x的代码.我不是重构代码,而是将此依赖性添加到我的pom.xml中以保持兼容性.
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>2.17.1</version> </dependency>
问题描述
i'm building java application and suddenly i found problem with compilation:
[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
But i was building this application before and everything was ok. Additionally, when i run this application under Eclipse using tomcat, it's running well.
In pom i have:
<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>
Can you help me ?
推荐答案
Change the scope of the log4j dependency to compile or remove it.
其他推荐答案
I ran into exactly the same problem:
pom.xml:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.3</version> </dependency>
Build error: package org.apache.log4j does not exist
Root cause: I needed to build my project against an older JRE (JRE 1.5.x); the current libraries are apparently incompatible.
Solution: back-rev to an older version of log4j.jar:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
<= Compiles successfully!
其他推荐答案
I encountered this error while migrating from log4j 1.x to log4j 2.x and realized I still had some code that only worked with 1.x. Instead of refactoring code I added this dependency to my pom.xml in order to maintain compatibility.
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>2.17.1</version> </dependency>