我正在尝试基于Maven构建我的应用程序的jar文件。所以我不需要在我的构建中包含外部jar库。我需要我的应用程序在运行时从本地maven存储库或本地文件夹中提供此外部依赖项,这些将包含这些外部库。 我为这个依赖项配置了我的pom文件,如下所示:
<profiles>
<profile>
<id>compile</id>
<dependencies>
<dependency>
<groupId>groupId</groupId>
<artifactId>some.artifact</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</profile>
并尝试使用此前缀-Pcompile
运行此jar。我正在使用此answer。
但是在运行时,当我尝试执行一个使用这个外部库的方法时,我已经从我的外部库中获得了java.lang.NoClassDefFoundError
我的类的名称。
那么我如何制作一个将使用本地存储的外部jar库的构建?
答案 0 :(得分:0)
所以我找到了在最终maven构建之外存储jar的解决方案。 我只需要使用正确的路径将此jar添加到classpath。为此,我将其添加到pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>${project.build.finalName}.lib/</classpathPrefix>
<mainClass>your.mainClass</mainClass>
</manifest>
<manifestEntries>
<Class-Path>project-0.0.1-SNAPSHOT.lib/some.lib-1.1.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>