【问题标题】:Maven: compiling using jar file from systemMaven:使用系统中的 jar 文件进行编译
【发布时间】:2014-07-12 07:28:25
【问题描述】:

我正在开发一个使用自定义 jar 文件的 maven 项目,并将其包含在 pom.xml 中

<dependency>
        <groupId>io.dropwizard</groupId>
        <artifactId>dropwizard-migrations</artifactId>
        <scope>system</scope>
        <version>0.7.0</version>
        <systemPath>${basedir}/dropwizard-migrations-0.7.0.jar</systemPath>
</dependency>

但是在mvn package 和编译之后我得到了NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: io/dropwizard/migrations/MigrationsBundle
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at in.myGroupID.Artifact.game.myApplication.initialize(myApplication.java:48)
    at io.dropwizard.Application.run(Application.java:70)
    at in.myGroupID.Artifact.game.myApplication.main(myApplication.java:44)
Caused by: java.lang.ClassNotFoundException: io.dropwizard.migrations.MigrationsBundle
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 15 more

【问题讨论】:

  • this 的可能重复项。并查看this 以及在本地存储库中安装 jar。

标签: java maven pom.xml


【解决方案1】:

我认为你的情况一切正常。但请确保您的罐子的位置正确。我的意思是 ${basedir}/dropwizard-migrations-0.7.0.jar ${baseDir} 表示项目主目录,你的 jar 必须在你的项目主目录中。如果它不在项目主目录中,请将其放在那里或更改 systemPath 值以将实际位置指向 jar 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2018-03-03
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多