我们有一个spring.boot应用程序,它构建为.war程序集(Maven构建),可以使用简单的java -jar命令部署在服务器上。
作为CI / CD的一部分,在Jenkins上构建了相同的代码。 Jenkins服务器是CentOS,目标部署服务器是RedHat。在Jenkins上构建的.war文件失败,并出现Spring Beans循环依赖关系解析错误,而在本地(Mac OS)或RedHat服务器上构建的相同代码可以正常工作。
我试图遍历war文件,了解每个依赖关系,除了jsp-api-2.1 jar以外,其他所有内容看起来都一样。在Jenkins上构建的.war中包含的jsp-api-2.1.jar在MANIFEST.MF中具有Created-By:1.5.0_06-b04,而在.war中包含的jsp-api-2.1.jar基于本地(MacOs)或Redhat上的MANIFEST.MF中的Created-By:1.5.0_04-b05。除此之外,其他所有依赖项都相同。
战争档案的大小略有不同,但是,除了上面提到的以外,我没有发现其他区别。
下面是我们在Jenkins内置jar上遇到的错误,
Description:
The dependencies of some of the beans in the application context form a cycle:
| Class A
↑ ↓
| Class B
└─────┘
Maven是否生成任何特定于操作系统的文件,还是从存储库特定于操作系统的依赖项下载的?
我真的想不出任何东西,因为两个.war文件看起来都很相似。关于此的任何信息都将有所帮助。