如何将外部jar文件传递给弹簧启动项目?



>我正在创建弹簧启动休息应用程序。此应用程序使用外部 jar 文件。

当我为应用程序创建战争文件并部署在本地和服务器上时,这工作正常。 但是当我创建此应用程序的可执行 jar 文件时,这不是使用外部 jar 文件。 我有课没有发现异常。

如何解决此问题?

有人建议我传递外部jar文件以执行jar文件的方法。

可能会有所帮助

<dependency>
<artifactId>com.google</artifactId>
<groupId>Ab</groupId>
<version>0.0.4.3</version>
<scope>system</scope>
<systemPath>${basedir}/lib/Ab.jar</systemPath>
</dependency>

通过这种方式,您可以将任何 jar 文件添加为 maven 依赖项。

使用

mvn install:install-file 

然后将其作为 Maven 依赖项提供

<dependency>
<artifactId>your-custom-jar</artifactId>
<groupId>group.id</groupId>
<version>0.0.1</version>
</dependency>

弹簧会把它打包在最终的可执行罐子里

有关安装自定义 JAR 的更多详细信息,请参阅此处

您需要创建 Fat Jar/Uber Jar/Shadow Jar/Shaded Jar(无论您喜欢哪个名称(,以便将所有依赖项包装在 jar 文件中。这是一篇关于如何为 maven 执行此操作的文章。这是针对 gradle (https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow(。

格拉德尔

使用插件 DSL:

plugins {
id "com.github.johnrengelman.shadow" version "5.1.0"
}

使用旧版插件应用程序:

buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.jengelman.gradle.plugins:shadow:5.1.0"
}
}
apply plugin: "com.github.johnrengelman.shadow"

马文

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
</plugin>
</plugins>

我必须在pom文件中进行更改。这将解决我的问题。

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>

我只需添加这些行,然后我的可执行 jar 文件就可以正常工作。

<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>

最新更新