Spring Cloud Config Server 用に複数の svn ベースの構成リポジトリを定義する際に問題が発生しています。3 つの構成リポジトリをセットアップしました。開発用、ユニット用、生産用の 1 つ。デフォルトを開発に設定しました(spring.cloud.config.server.svn.uri = development repo uriを設定することにより)。しかし、構成サーバーの REST エンドポイントに GET 要求を行うと、要求するプロファイルに関係なく、常に開発構成が取得されます。以下の例を参照してください...
元:
curl -i -X GET \
-H "Content-Type:application/json" \
'http://localhost:8888/my-service-accounts/unit'
結果:
{
"name":"my-service-accounts",
"profiles":[
"unit"
],
"label":null,
"version":"750",
"propertySources":[
{
"name":"http://PATH_TO_MY_SVN_SERVER/config-repo-development/trunk/my-service-accounts.yml",
"source":{
"server.port":8080,
"hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds":3000
}
}
]
}
しかし、私は期待していました...
{
"name":"my-service-accounts",
"profiles":[
"unit"
],
"label":null,
"version":"750",
"propertySources":[
{
"name":"http://PATH_TO_MY_SVN_SERVER/config-repo-unit/trunk/my-service-accounts.yml",
"source":{
"server.port":7777,
"hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds":3000
}
}
]
}
- propertySources[0].name 値の違いに注意してください。この構成はユニット リポジトリから取得されることを期待していますが、まだ開発リポジトリから取得されています。
私の構成サーバー構成:
アプリケーション.yml
server:
port: 8888
spring:
profiles:
include: subversion
cloud:
config:
server:
svn:
username: configserver
password: ************
uri: http://PATH_TO_MY_SVN_SERVER/config-repo-development
repos:
development:
pattern: ["*/development"]
uri: http://PATH_TO_MY_SVN_SERVER/config-repo-development
unit:
pattern: ["*/unit"]
uri: http://PATH_TO_MY_SVN_SERVER/config-repo-unit
production:
pattern:
- '*/production'
uri: http://PATH_TO_MY_SVN_SERVER/config-repo-production
discovery:
enabled: true
application:
name: my-server-config
- 注:私のIDE(IntelliJ)は、spring.cloud.config.server.svn.repos.*.uriの構成プロパティを解決できないと警告しています...しかし、これはSpring Cloud Configのドキュメントが指定する方法を示していますリポジトリ パス。
build.gradle
buildscript {
ext {
springBootVersion = "1.3.3.RELEASE"
}
repositories {
mavenCentral()
maven {url "https://plugins.gradle.org/m2/"}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("io.spring.gradle:dependency-management-plugin:0.5.5.RELEASE")
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.1.1"
}
}
apply plugin: "base"
apply plugin: "maven"
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'io.spring.dependency-management'
jar {
baseName = project.ext.projectName
version = project.ext.projectVersion
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Brixton.RC1"
}
}
dependencies {
compile("org.springframework.cloud:spring-cloud-starter-config")
compile("org.springframework.cloud:spring-cloud-config-server")
compile("org.springframework.cloud:spring-cloud-starter-eureka")
compile("org.tmatesoft.svnkit:svnkit")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
eclipse {
classpath {
containers.remove("org.eclipse.jdt.launching.JRE_CONTAINER")
containers "org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"
}
}
task wrapper(type: Wrapper) {
gradleVersion = "2.12"
}