无法在我的 Spring Boot 项目中使用 Maven 依赖项

Posted

技术标签:

【中文标题】无法在我的 Spring Boot 项目中使用 Maven 依赖项【英文标题】:Unable to use Maven dependency inside my Spring boot project 【发布时间】:2020-09-22 00:30:21 【问题描述】:

我已将我的工件发布到 Maven。可以在这里访问->https://oss.sonatype.org/#nexus-search;classname~AccessGateLabs

此后,我添加了依赖项,

<dependency>
   <groupId>com.accessgatelabs.oss</groupId>
   <artifactId>response-builder</artifactId>
   <version>1.0.2</version>
</dependency>

添加了依赖项,我可以在 Maven 依赖项文件夹中看到 jar(附截图)

在此之后,我无法从此依赖项中导入类。

谢谢!

【问题讨论】:

要成为标准的“jar”依赖项,我认为您的包com.accessgatelas.oss.builder 不应位于 BOOT-INF 文件夹下方。我不确定他们能在那里找到。 你可能发布了 spring-boot uber jar。但这不适合在 maven 中用作依赖项。 Spring Boot 将向 jar 添加一个类加载器,以从重新打包的 jar 中加载类和库。为了拥有一个可执行的jar。我不认为这是你的意图吗?如果您打算在其他地方(在另一个 Spring Boot 应用程序中)重新使用该功能,我建议从您的构建中删除 spring-boot 插件并发布一个普通的 jar 和 pom 文件。然后将其作为依赖项添加到启用了该插件的构建/应用程序中。 是的,它在删除 Spring 插件进行打包后工作。谢谢! 【参考方案1】:

问题是您部署了一个包含 Sping 类的 uber-jar,而不是您自己的类库。 浏览jar时在归档浏览器中看到根目录是“org/springframework/boot”

解决方法是不使用Spring插件进行打包,而是使用默认的maven jar打包插件。

【讨论】:

是的,谢谢。它在删除 Spring 插件进行打包后工作。

以上是关于无法在我的 Spring Boot 项目中使用 Maven 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用hibernate在spring boot中实现分页

无法在 Thymeleaf 中显示 Spring Boot 模型数据

Spring Boot 不使用配置的 Jackson ObjectMapper 和 @EnableWebMvc

如何在我的新 Spring Boot 项目中关闭 Spring Security?

spring boot 无法反序列化-HttpMessageNotReadableException

如何在我的 Maven Spring Boot 多模块项目的测试中引用兄弟模块?