【发布时间】:2014-10-11 19:30:32
【问题描述】:
我正在尝试从命令行运行我的应用程序 - 我执行以下操作 - 使用 mvn clean verify 构建应用程序,这会生成一个 jar,我以正常方式运行该 jar java -jar name.jar
我在pom.xml 中配置了 log4j,如下所示;
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
我已经设置应用程序来创建如下所示的清单;
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.me.main.Main</mainClass>
</manifest>
</archive>
</configuration>
但是,当我运行 jar 时,我不断收到以下异常 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at com.me.main.Main.<clinit>(Main.java:23)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
为什么maven不下载依赖并放到相关位置?我的项目设置中可能缺少什么?
谢谢
【问题讨论】:
-
您的存储库位置是什么?我认为,您的配置下载的存储库中没有这样的 jar。