Java 如何为多个部署平台维护相同的代码库

Java 如何为多个部署平台维护相同的代码库,java,web-services,Java,Web Services,我在java项目中工作,该项目实现了REST API(web服务,无微服务或spring引导),我们将其部署在多个应用服务器上(Wildfly,Liberty)…到目前为止,我们为单独的部署平台维护了不同的代码库。代码内部虽然逻辑相同,但导入包和pom依赖项不同。 情景: 在Wildfly中,我们使用windows FTP进行文件传输,但对于liberty server,我们使用SSL Liberty不支持用于在wildfly中创建JWT令牌的API 有谁能建议一种方法,让我可以为不同的部署平台

我在java项目中工作,该项目实现了REST API(web服务,无微服务或spring引导),我们将其部署在多个应用服务器上(Wildfly,Liberty)…到目前为止,我们为单独的部署平台维护了不同的代码库。代码内部虽然逻辑相同,但导入包和pom依赖项不同。 情景:

  • 在Wildfly中,我们使用windows FTP进行文件传输,但对于liberty server,我们使用SSL
  • Liberty不支持用于在wildfly中创建JWT令牌的API
    有谁能建议一种方法,让我可以为不同的部署平台创建一个单一的代码库,还有哪些挑战和瓶颈。

    我建议使用Spring概要文件

    例如,您可以创建不同的配置文件(wildfy、liberty),并创建两个组件

    @Component
    @Profile("wildfy")
    public class FTPFileTransfer implement FileTransfer
    
    @Component
    @Profile("liberty")
    public class SSLFileTransfer implement FileTransfer
    
    如果您使用-Dspring.profiles.active=wildfy启动应用程序,则您有一个特定的文件传输实现


    我建议您阅读上的spring文档。

    不建议使用仅链接的答案(或接近仅链接的答案),因为可能会出现链接腐烂。请在您的答案中至少包含一个简短的摘要。问题在于依赖性…如果我将所有JAR放在一起并进行战争,由于Liberty不支持apache软件包,而且wildfly也不使用Liberty软件包,因此war无法正确部署……您可以使用maven配置文件添加依赖项,也可以不添加依赖项