Ne peut pas obtenir de projet maven.la version de propriété, au Printemps de l'application avec @Valeur
Comment obtenir le projet maven.la version de propriété, au Printemps de Démarrage de l'application avec un @de la Valeur de l'annotation?
Vous devez vous connecter pour publier un commentaire.
Après quelques recherches et essais sur la façon d'obtenir le projet maven version de Printemps de l'application de Démarrage, je ne pouvais pas trouver quelque chose de travailler pour moi.
À l'aide d'un manifeste est définitivement un mauvais chemin à cause de la classe chargeurs de questions, c'est à dire un seul obtient le premier manifeste du Printemps trouve, ce qui dans mon cas n'était pas l'une de mes application.
Une solution que j'ai trouvé est d'utiliser le maven ressources plugin pour "filter" (remplacer) propriétés dans les fichiers de ressources. Dans ce cas, le Ressort
application.properties
.Ci-dessous sont les étapes pour faire ce travail.
Dans le pom, activer des ressources de filtrage avec la définition suivante:
Dans le
application.properties
fichier:Avis les @property@ au lieu de ${propriété}. dans le
application.properties
fichier.Le printemps-amorçage-starter-pom parent redéfinit le standard de ${} délimiteur comme @:
On peut alors accéder à ces propriétés au Printemps à l'aide de @Valeur comme ceci:
Un exemple de projet est disponible ici.
[email protected]@
.application.yml
en test/resources. Lorsque vous souhaitez activer le filtrage pour que l'on, aussi, vous aurez besoin d'untestResources
section similaire à celui décrit dans docs.printemps.io/spring-boot/docs/current/reference/html/...Pour obtenir l'accès à des propriétés Maven dans Printemps de Démarrage de l'application tous nous avons besoin est une carte avec séparateur
@
dans leapplication.properties
comme ceci:Ensuite les utiliser dans l'application comme d'ordinaire propriétés, par exemple:
Source: Automatique De La Propriété D'Expansion À L'Aide De Maven
Mais si nous sommes à l'aide de yaml pour stocker les propriétés de l'application, nous devons remplacer le séparateur
@
avec une autre, par exemple^
dans notrepom.xml
:Ou encore plus simple - il suffit de remplacer la variable
resource.delimiter
danspropeties
bloc de votre pom.xml:Ensuite l'utiliser dans
application.yml
:Il y a un moyen plus facile de faire ceci, ne pas besoin d'ajouter de l'application.propriétés ou séparateur de changements.
Ajoutez simplement le plugin avec l'objectif de construire-info et Autowire démarrage de classe avec des fèves BuildProperties.
De démarrage de classe aura
plus tard dans @PostConstruct vous pouvez appeler plusieurs méthodes de restauration en construire d'horodatage, la Version, le nom , l'Artefact etc.
La
info
actionneur utilisera automatiquement et afficher de l'information si il le détecte, ainsi que d'afficher git d'informations s'il en trouve.C'est probablement parce que votre principal pom ne pas déclarer printemps-amorçage-starter-parent que son parent pom.
Parce que quand donc, le filtrage se fait par défaut, sans avoir besoin de déclarer le filtrage explicitement
Pour moi, le passage à partir de :
à :
Dans mon application principale pom.xml correction du problème sans avoir à déclarer le filtrage.