Java 缺少带有Maven AddJar插件的JAR
当我运行jar文件时,它会在运行时从依赖项(maven addjars插件中包含)访问类,我得到一个Java 缺少带有Maven AddJar插件的JAR,java,maven,jar,classpath,Java,Maven,Jar,Classpath,当我运行jar文件时,它会在运行时从依赖项(maven addjars插件中包含)访问类,我得到一个java.lang.NoClassDefFoundError错误 注意:通过在POM.xml中指定依赖项,我还正常地包含了一些JAR,我只使用addjar插件来创建我只在本地拥有的自定义JAR POM.XML的一部分(如果您需要更多信息,请告知) 安装 ${basedir}/目标 ${project.artifactId}-${project.version} maven jar插件 交换者 c
java.lang.NoClassDefFoundError
错误
注意:通过在POM.xml中指定依赖项,我还正常地包含了一些JAR,我只使用addjar插件来创建我只在本地拥有的自定义JAR
POM.XML的一部分(如果您需要更多信息,请告知)
安装
${basedir}/目标
${project.artifactId}-${project.version}
maven jar插件
交换者
com.googlecode.addjars-maven-plugin
addjars maven插件
1.0.5
加罐
${basedir}/my repo
....
昂首阔步
昂首阔步
2.1.4-快照
swagger库被复制到“target/com.googlecode.addjars maven plugin”文件夹中,idk是存放这些库的合适位置,因为我没有看到从maven存储库下载的库。但在运行时找不到该类
更新:
当使用mvn exec而不是java-jar运行时,程序将运行
有人知道我做错了什么吗?尝试在清单文件中添加类路径元素。您可能需要true my repo/Hi我尝试了它,但奇怪的是,当访问我在add jar插件之外包含的jar时,它更快地抛出了相同的错误。请尝试${project.build.directory}/my repo,而不是${basedir}/my repo,由于编译jar将进入目标文件夹并从它们的文件夹运行,所以它将运行。这是真的,我做到了,但仍然没有找到maven依赖项……好的,我找到了Duncans的解决方法
<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>