是否有人将Spring Cloud Config配置为使用本地GIT仓库而不是GitHub?如果可以,你可以分享你的配置吗?
答案 0 :(得分:10)
Spring Cloud Config服务器tests执行此操作。
uri最终看起来像file:./target/test-classes/config-repo/
您可以在bootstrap.properties
中执行类似的操作spring.cloud.config.server.git.uri=file:/path/to/your/git/repo
答案 1 :(得分: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);