将常规的Maven项目转换为Spring Boot项目

时间:2018-09-13 12:57:29

标签: java spring maven spring-boot

我的主管要求我将一个旧的Maven项目转换为一个Spring Boot项目,以便我们能够通过RESTful交互访问该项目的后端(在该项目的后端只能通过控制台界面访问之前)。

因此,首先,我在单独的项目包中添加了一个简单的Spring Boot应用程序。之后,我开始通过Spring Boot所需的依赖项扩展项目的pom.xml,并调整了整个项目设置。现在,我尝试运行旧项目的后端,事实证明它正在运行。但是,简单的Spring Boot应用程序没有。

我将问题缩小为pom.xml的“旧”部分中的冲突依赖项:

<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.6.1</version>
</dependency>

当我将此依赖项保留在pom.xml中时,旧的后端可以工作,但是Spring Boot应用程序失败并出现以下错误:

WARN: Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)

如果我注释掉这个依赖,Spring Application可以正常工作,但是旧的后端失败。我使用2.0.4.RELEASE的{​​{1}}版本。我认为日志记录包的旧后端版本与spring-boot-admin-starter-server中包含的版本不同。但是,我在项目中某种程度上需要两个版本。

不可能的事情:

  • 更新旧资料来源,因为其中一些资料来源具有版权 外部公司

我已经尝试过的方法,但是在以下方面却没有成功

  • 从Spring Boot限制中排除日志记录。这将导致以下错误:

spring-boot-admin-starter-server

  • 我还尝试根据我的网络研究中的建议使用shade插件。不幸的是,我无法用这种方法解决问题。

有人建议如何解决此问题吗?我会很感激。我不习惯解决这种依赖问题。如果我缺少明显的东西,请原谅。

-lema

  

编辑pom.xml(不幸的是,我不得不省去了大部分):

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

  

编辑:我刚刚发现,如果您在冲突的依赖项中删除了version元素,则Spring Boot Application可以运行,但是不幸的是,后端然后失败了。

1 个答案:

答案 0 :(得分:0)

所以我找到了一个解决方案,但这可能不是最好的方法:

我只是将<spring-boot-dependencies.version>2.0.4</spring-boot-dependencies.version>替换为与冲突日志依赖项兼容的旧版本,即版本1.4.7.RELEASE

这是Spring Boot应用程序和后端同时工作的最新版本(通过反复试验发现该错误)。

无论如何,非常感谢您的帮助。

欢呼