我在IntelliJ IDEA中使用jar
生成了一个Maven
文件。尝试执行时出现以下错误消息:
线程中的异常" main" java.lang.NoClassDefFoundError: 组织/阿帕奇/ log4j的/记录器
我只使用一个log4j
版本,1.2.17和java版本1.8.0_171。我也在pom.xml中设置了跳过测试:<maven.test.skip>true</maven.test.skip>
直接从IDE执行成功。我使用Maven Surefire插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
答案 0 :(得分:1)
当您从IDEA包含的IDEA依赖项运行它时,您可以在IDEA的运行工具窗口中查看命令。
但是当你生成一个jar并运行它时,它没有包含依赖项。要使其工作,您必须告诉Maven包含它们,其中一种方法是使用Apache Maven Assembly Plugin将build
部分添加到 pom.xml :< / p>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>package.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>