我最近将我的一个 Java 项目转换为 Maven 项目。我的 pom.xml 看起来像这样:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<groupId>com.myproject.groupid</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>MyProject</name>
<description>The first version of my maven project</description>
<dependencies>
<dependency>
<groupId>com.dependent.jar</groupId>
<artifactId>dependentjar</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<type>jar</type>
<systemPath>${project.basedir}/jars/dependent.jar</systemPath>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>
<version>1.4.3</version>
</dependency>
<dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.myproject.main.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</build>
</project>
当我执行 mvncompile 和 mvninstall 时,该项目工作正常,并且还生成了 jar。但是当我尝试运行 jar [使用 java -jar MyProject.jar] 时,我收到一条错误,其中显示: Exception in thread "main"java.lang.NoClassDefFoundError 这是因为 maven 无法添加该部分中指定的依赖 jar。 [在运行时不可用]
有人可以告诉我将 systemPath jar 复制到 maven 生成的 jar 的最佳方法吗?
我查看了 maven-shade-plugin 和 maven-assemble-plugin,但对它们都没有找到太多运气。任何帮助将不胜感激!
最佳答案
尝试将其添加到您的 maven-jar-plugin 配置中
<addClasspath>true</addClasspath>
<classpathPrefix>*path to dependencies*</classpathPrefix>
此外,为了管理您的依赖项,您可以使用 Maven dependency plugin
关于java - Maven:生成包含所有依赖项的可执行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31096958/