Printemps de démarrage externe configuration de fichier de propriétés

J'ai un ressort de démarrage de l'application que je peux le paquet dans une guerre que je veux déployer dans différents environnements. Pour automatiser ce déploiement, il serait plus simple d'avoir le fichier de configuration externalisés.

Actuellement tout fonctionne bien avec une application.fichier de propriétés dans src/main/resources. Puis-je utiliser mvn install pour construire une guerre déployable à tomcat.
Mais je voudrais utiliser un .fichier yml qui n'a pas besoin d'être présent sur mvn install mais qui serait lu à partir au cours du déploiement de la guerre et est dans le même ou un répertoire par rapport à ma guerre.

24. extériorisés de configuration montre où le printemps de démarrage va chercher les fichiers et 72.3 Modifier l'emplacement de l'externe propriétés d'une application donne plus de détails sur comment configurer cela, mais je ne comprends pas comment traduire cela à mon code.

Ma classe application qui ressemble à ceci:
package être.ugent.lca;

Updated below

J'ai besoin d'ajouter un @PropertySource à ce fichier? Comment pourrais-je vous référer à un certain chemin relatif?

J'ai l'impression que c'est probablement documenté là que la plupart des printemps de démarrage de la documentation, mais je ne comprends pas comment ils me dire de le faire.

MODIFIER

Ne sais pas si cela devrait être une question distincte, mais je pense que c'est toujours connexe.

Lors du réglage de l'os variable de l'erreur de fichier yaml ne trouve pas allé loin. Pourtant, j'obtiens toujours la même erreur à nouveau comme quand je n'avais pas d'application .propriétés ou .fichier yml.
L'Application ressemble maintenant à ceci:

@Configuration
**@PropertySource("file:${application_home}/application.yml")**
@ComponentScan({"be.ugent.lca","be.ugent.sherpa.configuration"})
@EnableAutoConfiguration
@EnableSpringDataWebSupport
public class Application extends SpringBootServletInitializer{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);

    }

La application_home OS variable

$ echo $application_home  
C:\Masterproef\clones\la15-lca-web\rest-service\target

Ma demande.fichier yml(la partie, il se plaint d'):

sherpa:
  package:
    base: be.ugent.lca

Erreur lors de java-jar *.la guerre
Toutes les variations:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'sherpa.package.base' in string value "${sherpa.package.base}"
    at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)
    at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)
    at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204)
    at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:178)
    at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:808)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1027)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
    ... 142 more
Où est votre propriétés/fichier yml? Quels accessoires vous voulez lire? La question ne semble pas clair pour moi
Mon edition effacer l'emplacement? Les propriétés sont essentiellement les mêmes dans la plupart des endroit, mais la base de données et de connexion de base de données peut changer en fonction de la TST, QAS

OriginalL'auteur turoni | 2017-03-25