2016-04-07 40 views
1

Bir uygulama için farklı profillere dayalı olarak, spring cloud yapılandırmasının desen eşleştirme özelliğini uygulamaya çalışıyorum. http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_environment_repository'daki belgelere dayanarak, depoları profillere göre eşleştirmek mümkündür. Aşağıda, bir yapılandırma istemci uygulaması "kullanıcı" ve user.properties, user-development.properties var benim yapılandırma sunucusu application.ymlSpring cloud config desen profili eşleşti

server: 
    port: 8888 
spring: 
    cloud: 
    config: 
     server: 
     git: 
      uri: ssh://[email protected]/sample/cloud-config-properties.git 
      repos: 
      development: 
      pattern: 
       -*/development  
       -*/staging 
      uri: ssh://[email protected]/development.git 
      test: 
      pattern: 
       -*/test 
       -*/perf 
      uri: ${HOME}/Documents/cloud-config-sample-test 

olan belgelere dayanarak

user-test.properties - uygulama adından bağımsız olarak, eğer desen */development i, e localhost: 8888/user/development veya localhost: 8888/demo/development ile eşleşiyorsa, config sunucum profil kalıbıyla eşleşmeli ve uygun özellikleri getirmelidir. Ör: ssh dan demo-development.properties almalısınız http://localhost:8888/demo/development :

// [email protected]/development.git Ama uygulamada, varsayılan uri tüm profiller Mülkümün dosya demo yani kullanılır .properties uri'den döndürülür: ssh: // [email protected]/sample/cloud-config-properties.git

Bu konuda herhangi bir işaretçi var mı?

DÜZENLEME: PatternMatching kaynak koduna bazı hata ayıklama sonra pom.xml

<parent> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-parent</artifactId> 
     <version>Brixton.M5</version> 
     <relativePath /> 
    </parent> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-config-server</artifactId> 
     </dependency> 
<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-config-monitor</artifactId> 
     </dependency> 
<dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-bus-amqp</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
<repositories> 
     <repository> 
      <id>spring-snapshots</id> 
      <name>Spring Snapshots</name> 
      <url>http://repo.spring.io/libs-snapshot-local</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>spring-snapshots-continuous</id> 
      <name>Spring Snapshots Continuous</name> 
      <url>http://repo.spring.io/libs-snapshot-continuous-local</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>spring-milestones</id> 
      <name>Spring Milestones</name> 
      <url>http://repo.spring.io/libs-milestone-local</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>spring-releases</id> 
      <name>Spring Releases</name> 
      <url>http://repo.spring.io/libs-release-local</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-snapshots</id> 
      <name>Spring Snapshots</name> 
      <url>http://repo.spring.io/libs-snapshot-local</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </pluginRepository> 
     <pluginRepository> 
      <id>spring-milestones</id> 
      <name>Spring Milestones</name> 
      <url>http://repo.spring.io/libs-milestone-local</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </pluginRepository> 
    </pluginRepositories> 
+0

Hangi süreyi kullanıyorsunuz? – spencergibb

+0

Brixton.M5 pom.xml: \t org.springframework.cloud \t yay bulut marş ebeveyn \t Brixton.M5 \t \t

cevap

1

burada sorunu çözüldü nasıl: iki yoldan birini seçebilirsiniz.

application.yml 
server: 
    port: 8888 
spring: 
    cloud: 
    config: 
     server: 
     git: 
      uri: ssh://[email protected]/sample/cloud-config-properties.git 
      repos: 
      development: 
      pattern: '*/development' ## give in quotes 
      uri: ssh://[email protected]/development.git 

VEYA

development: 
    pattern: xx*/development,*/development ##since it is not allowed to have a value starting with a wildcard('*')after pattern I first gave a generic matching but the second value is */development. Since pattern takes multiple values, the second pattern will match with the profile 
    uri: ssh://[email protected]/development.git 

kalıbı: */development.Error yml Dosya- üzerinde alfabetik veya sayısal karakter beklenen, ancak buldum ama/buldular.

Profil deseni git repo'nun nedeni belirtilmemesinin nedeni: yay, yml dosyasında bir '-' ile başlayan desen için birden çok dizi değerine izin verse de, desen eşleştiricisi, eşleştirilecek dizgiyi "-" olarak alıyordu. Yani '*/development' yerine '-*/development' modelini arıyor.

repos: 
    development: 
    pattern: 
     -*/development  
     -*/staging 

i '- */development' olarak desen dizisi söz olsaydı ben, ben yml dosya üzerinde bir derleme hatası başlamıştı edildi gözlenen diğer konu - bu kadar çok değer alabildiği olduğunu göstermek içindir tire sonra not alan (dizisi) ve bir hata ile bir '*/geliştirme' ile başlayalım: beklenen alfabetik veya sayısal karakter, ancak bulundu/bulunamadı/

repos: 
     development: 
     pattern: 
      - */development  
      - */staging 
+0

Evet, daha önce bunu görmedim.Bu bir YML sorunu, '' 'ile çevrelenmesi gereken' '' ile başlayan dizelerdir. – spencergibb