如何将外部jar文件传递给spring boot项目? [复制]
Posted
技术标签:
【中文标题】如何将外部jar文件传递给spring boot项目? [复制]【英文标题】:How to pass external jar file to spring boot project? [duplicate] 【发布时间】:2020-01-25 11:47:35 【问题描述】:我正在创建 Spring Boot 宁静的应用程序。此应用程序使用外部 jar 文件。
当我为应用程序创建 war 文件并部署在本地和服务器上时,这可以正常工作。 但是当我创建这个应用程序的可执行 jar 文件时,这不是使用外部 jar 文件。 我有类未发现异常。
我该如何解决这个问题?
任何人都建议我传递外部 jar 文件以执行 jar 文件的方法。
【问题讨论】:
你在处理什么样的外部 jar 文件。你不能把它作为依赖添加到 pom 中吗? 你能显示你的 pom.xml 文件吗 这能回答你的问题吗? Add external library .jar to Spring boot .jar internal /lib 【参考方案1】:可能会有帮助
<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 依赖。
【讨论】:
【参考方案2】:使用安装您的外部 jar
mvn install:install-file
然后将其作为 maven 依赖项提供
<dependency>
<artifactId>your-custom-jar</artifactId>
<groupId>group.id</groupId>
<version>0.0.1</version>
</dependency>
spring 会打包成最终的可执行jar
有关安装自定义 jar 的更多详细信息,请参阅 this
【讨论】:
【参考方案3】:您需要创建 Fat Jar / Uber Jar / Shadow Jar/ Shaded Jar(无论您喜欢哪个名称),以便将所有依赖项都包装在 jar 文件中。这是一个article,关于如何为 Maven 做到这一点。 This 用于 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"
Maven
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
</plugin>
</plugins>
【讨论】:
【参考方案4】:我必须在 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>
【讨论】:
以上是关于如何将外部jar文件传递给spring boot项目? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
pom文件配置打包外部/自定义jar文件在fat spring boot可执行jar文件中
如何使用 Spring Boot 将 log4j.xml、应用程序属性和 jar 外部化?
如何将 application.properties 传递给 Docker 容器中的 Spring Boot 应用程序?