我有一个使用以下架构的项目:
中间件
应用程序
自定义应用程序
构建环境利用了所谓的maven-overlay。该应用程序包含对中间件依赖项的引用,因此当我构建该应用程序时,这些引用将安装到我的maven代码库中。接下来,当我构建我的自定义应用程序时,我将该应用程序作为依赖项引用--我的自定义将覆盖在Application类之上。创建的最终产品是war文件,我在构建自定义应用程序后将该文件部署到Tomcat war服务器上。
整个项目变得相当陈旧-中间件是在2011/2012年开发的,所以它使用的是过时的版本...好吧,所有的一切!
中间件和应用程序使用旧版本的Spring (3.1.0),最初是使用JDK6开发的。几年前我搬到了JDK7。然而,最近我尝试使用JDK11构建和部署我的自定义应用程序-但遇到了各种问题,所以我又回到了JDK8;但是,即使使用JDK8也有一个问题。具体地说,它与Lamba表达式和一些我当前版本的Spring (3.1.0)不知道如何处理的细微差别有关。也就是说,解决方案是更新中间件正在使用的Spring版本,以便整个项目可以利用JDK8 (用于TLS1.2、beefer安全等)。
问:如何更新中间件中的依赖项?我已经查看了中间件源代码(因此,如果需要,我确实可以访问源代码),并且我在项目的主POM中看到了这种依赖关系:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>再说一次-我需要将这个版本更新到4.0.0.M1来解决我的问题,但是我不确定如何做到这一点,考虑到我上面描述的构建环境,在这种环境中,应用程序引入了中间件依赖项(反过来,也就是引入了旧的spring版本)。
谢谢。
发布于 2020-05-06 14:41:46
所以,长话短说,为了影响由中间件管理的依赖性-我需要将中间件升级到适当的版本,以解决我的JDK问题,同时与我的应用程序的体系结构保持一致(例如,我不能像我希望的那样自动采用最新的中间件版本,所以我采用了尽可能高的版本,并在大量工作后解决了这两个问题。
最终选择了JDK8 +,这是使用Spring3.2.3版的中间件版本。这个Spring版本允许以JDK 1.7字节码为目标,但使用1.8 JDK构建。
https://stackoverflow.com/questions/61395312
复制相似问题