当我运行我的jar文件时,它会在运行时从依赖项访问一个类(由maven-addjars-plugin包含),我收到java.lang.NoClassDefFoundError
错误。
注意:我也只是通过在POM.xml中指定依赖项来包含一些罐子,我只使用addjar插件来获取我本地只有的自定义jar。
POM.XML的一部分(如果您需要更多信息,请告诉)
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>${project.artifactId}-${project.version}</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>Swapper</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
<version>1.0.5</version>
<executions>
<execution>
<goals>
<goal>add-jars</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}/my-repo</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
....
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen</artifactId>
<version>2.1.4-SNAPSHOT</version>
</dependency>
swagger lib被复制到&#34; target / com.googlecode.addjars-maven-plugin&#34;文件夹,其中idk是拥有这些库的正确位置,因为我没有看到从maven存储库下载的库。但是在运行时没有找到该类。
更新: 当使用mvn exec而不是java -jar运行时,程序会运行。
任何人都知道我做错了什么?