web-dev-qa-db-fra.com

Création de propriétés spécifiques au profil d’amorçage Spring à l’aide de la configuration Maven

Comment créer le fichier war spécifique à l'environnement pour une application de démarrage printanier à l'aide de maven.J'ai créé 3 fichiers de configuration de profil placés dans src/main/resource/folder.

  1. application.prod.properties
  2. application.dev.properties
  3. application.test.properties

Je peux exécuter une application en spécifiant le type de profil requis dans l'onglet d'argument VM avec la valeur "-Dspring.profiles.active = dev" lors de l'exécution du projet en tant qu'application de démarrage printanier.

Ici, lors de l'exécution en tant qu'application de démarrage printanière, je peux spécifier le profil requis. De la même manière, lorsque je dois utiliser MAVEN, installer avec un profil différent. Est-il possible de spécifier un profil en tant que partie de la liste d'arguments VM dans l'objectif Configuration de l'exécution pour l'installation Maven.

J'ai une limitation à ne pas toucher le code Java existant.

J'utilise STS IDE, version Spring Boot 1.5.2.RELEASE, Java 1.8 et Oracle db.

De la même manière, aidez-moi à configurer des profils dans Jenkins.

Ma configuration de profil a deux exigences.

  1. Exécutez l'application dans STS IDE en tant qu'application de démarrage de printemps avec les arguments VM. Utilisé ci-dessous VM ARGS -Dspring.profiles.active=dev

Blockquote

(Ici, je reçois une exception ci-dessous lors du démarrage de SpringBootApp localement dans l'environnement de développement).


APPLICATION ÉCHOUÉE AU DÉMARRAGE


La description:

Impossible de déterminer la classe de pilote de base de données intégrée pour le type de base de données NONE

Action:

Si vous voulez une base de données intégrée, veuillez en placer une sur le chemin de classe. Si vous devez charger des paramètres de base de données à partir d'un profil particulier, vous devrez peut-être l'activer (les profils "dev" sont actuellement actifs).

Blockquote

  1. Comment faire la même chose en utilisant maven install en spécifiant des profils de manière dynamique pour générer un fichier war. Je ne parviens pas à trouver la solution.
3
Sreenivas M

Dans votre fichier application.properties principal, définissez spring.profiles.active sur @myActiveProfile@ (ou le nom de votre choix).

spring.profiles.active=@myActiveProfile@

Ajoutez votre fichier application.properties en tant que ressource filtrée afin que l'espace réservé myActiveProfile soit remplacé pendant la phase de construction.

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    …
</build>

Ajouter une section de profils à votre pom.xml

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <myActiveProfile>dev</myActiveProfile>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <myActiveProfile>prod</myActiveProfile>
        </properties>
    </profile>
</profiles>

En gros, vous pouvez spécifier des profils maven lors de l’exécution d’un objectif particulier. E.g mvn install -P profileName. Dans un profil, vous pouvez créer une propriété qui peut être transmise à partir de la ligne de commande lors de l'exécution d'un objectif tel que mvn install -DmyActiveProfile=foo.

J'espère que cela t'aides.

Liens utiles

Comment définir des profils actifs avec des profils mavenhttps://maven.Apache.org/guides/introduction/introduction-to-profiles.html

3

Ici, tout d'abord, je vous suggère de renommer vos fichiers de propriétés en application-prod.properties, application-dev.properties et application-test.properties.

Deuxièmement, l'objectif d'installation de maven est de compiler et de construire votre projet.

Si vous souhaitez également exécuter votre application, lors de l'installation, nous vous suggérons d'utiliser spring-boot-maven-plugin.

Et vous pouvez utiliser une commande maven comme ci-dessous

mvn clean install spring-boot:run

Quelques liens ci-dessous pour vous informer

https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html

https://docs.spring.io/spring-boot/docs/current/maven-plugin/run-mojo.html

0
Anil Bachola