6

有没有人将 Spring Cloud Config 配置为使用本地 GIT 存储库而不是 GitHub?如果是这样,您可以分享您的配置吗?

4

2 回答 2

11

Spring Cloud Config 服务器测试执行此操作。

uri 最终看起来像这样file:./target/test-classes/config-repo/

你可以在 bootstrap.properties 中做这样的事情

spring.cloud.config.server.git.uri=file:/path/to/your/git/repo
于 2014-11-14T22:00:40.670 回答
1

从 spring-cloud-config-montior 2.0.0.RELEASE 开始,FileMonitorConfiguration 会丢弃本地 git 存储库路径上的监控更改,除非它们被解析为 FileSystemResource。不幸的是,如果本地 git repo 路径像 file:/path/to/your/git/repo/ 一样,ApplicationContext DefaultResourceResolver 返回 FileUrlResource 而不是 FileSystemResource。我的解决方法是创建一个自定义的 ProtocolResolver,它是用于扩展 DefaultResourceLoader 的 SPI,如果本地 git repo 路径以“//”开头,则利用 FileSystemResourceLoader 返回 FileSystemResource。

SpringApplication app = new SpringApplication(ConfigserviceApplication.class);
        app.addInitializers(new ApplicationContextInitializer<ConfigurableApplicationContext>() {

            @Override
            public void initialize(ConfigurableApplicationContext applicationContext) {
                ProtocolResolver resolver = new ProtocolResolver() {

                    private FileSystemResourceLoader resourceLoader = new FileSystemResourceLoader();

                    @Override
                    public Resource resolve(String location, ResourceLoader resourceLoader) {
                        if(location != null && location.startsWith("//")) {
                            return this.resourceLoader.getResource(location);
                        }
                        return null;
                    }
                };
                applicationContext.addProtocolResolver(resolver);
            }
        });
        app.run(args);
于 2018-07-19T10:27:20.227 回答