我有一个利用以下架构的项目:
MIDDLEWARE
应用
自定义应用
构建环境利用了maven-overlay
。
该应用程序包含对中间件依赖项的引用,因此在构建该应用程序时,这些引用将安装到我的Maven存储库中。
接下来,在构建自定义应用程序时,我将应用程序作为依赖项引用-我的自定义项被覆盖在Application类的顶部。
创建的最终产品是在构建自定义应用程序后部署在Tomcat Web服务器上的war文件。
整个项目已经相当老了-中间件是在2011/2012年开发的,因此它使用的是...的过时版本...一切!
中间件和应用程序使用的是Spring(3.1.0)的旧版本,最初是使用JDK 6开发的。几年前,我移至JDK7。但是,最近,我尝试使用JDK11构建和部署自定义应用程序-但是遇到了各种各样的问题,所以我又回过头去研究JDK8;但是,即使使用JDK8,也存在问题。特别是,它与Lamba表达式和我当前版本的Spring(3.1.0)不知道如何处理的其他一些细微差别有关。话虽如此-解决方案是更新中间件使用的Spring版本,以便整个项目可以使用JDK8(用于TLS1.2,更强的安全性等)
问题:如何更新中间件中的依赖项? 我查看了中间件源代码(因此,如有必要,我可以访问源代码),并且在项目的主POM中看到了这种依赖关系:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
再次-我需要将此版本更新为4.0.0.M1,以解决我的问题,但是鉴于上述构建环境,我不确定如何执行此操作,在该环境中,APPLICATION引入了中间件依赖项(反过来就是那个旧的春季版本中的版本。
谢谢。
答案 0 :(得分:0)
因此,长话短说,为了影响中间件所管理的依赖关系,我需要将中间件升级到可以解决我的JDK问题的适当版本,但同时还要与我的应用程序的体系结构(例如,我不能像我想要的那样自动采用最新的中间件版本,因此我尽可能采用了最高版本,并在大量工作后解决了这两个问题。
最终使用JDK8 +使用Spring 3.2.3版本的中间件版本。这个Spring版本允许目标JDK 1.7字节代码,但使用1.8 JDK进行构建。