简体   繁体   English

Maven:使用系统中的jar文件进行编译

[英]Maven: compiling using jar file from system

I am working on a maven project for which I am using a custom jar file and I included that in pom.xml as 我正在使用自定义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>

but after mvn package and Compiling I am getting the NoClassDefFoundError 但是在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

I think everything is all right in your case. 我认为您的情况一切正常。 But please make sure that the location of your jar is correct. 但是请确保您的罐子位置正确。 I mean in ${basedir}/dropwizard-migrations-0.7.0.jar ${baseDir} means project home directory and your jar must be in your project home directory . 我的意思是在$ {basedir} /dropwizard-migrations-0.7.0.jar中,$ {baseDir}表示项目主目录,而jar必须位于项目主目录中。 If it is not in project home directory, put it there or change systemPath value to point actual location to the jar file. 如果它不在项目主目录中,请将其放在此处或更改systemPath的值以将实际位置指向jar文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM