J'utilise le démarrage à ressort 1.5.2, et en utilisant des profils mais j'ai trouvé une chose très étrange.démarrage du ressort en utilisant toujours le même profil
mon dossier de ressources de démarrage du printemps comme ceci:
configs dans application.yml
spring:
profiles:
active: @[email protected]
application dev.yml
spring:
profiles: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1
username: root
password:
server:
port: 8080
application test.yml
spring:
profiles: test
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db2
username: root
password:
server:
port: 8081
mon pom.xml, juste inclure la partie des ressources et la partie du profil.
<!-- profile -->
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>dev</build.profile.id>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-${profileActive}.yml</include>
<include>application.yml</include>
<include>templates/*</include>
</includes>
</resource>
</resources>
Je suis maintenant en train d'utiliser profil de test, a constaté que tout va bien, @[email protected]
a été remplacé à test
;
mvn clean package -Dmaven.test.skip=true -Ptest
On dirait que tout est OK.
mais quand je tente de lancer le pot, en utilisant toujours dev profil, bien que nous application.yml
montre en utilisant le profil test or prod
maintenant.
Je ne sais pas où est le problème dans mes YML configs. Et j'essaie d'inclure toutes les configurations de profil dans un seul fichier application.yml. Mais l'application utilise toujours le profil dev
.
configs entièrement dans un seul fichier application.yml
spring:
profiles:
active: @[email protected]
---
spring:
profiles: dev
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1
username: root
password:
server:
port: 8080
---
spring:
profiles: test
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db2
username: root
password:
server:
port: 8081
---
spring:
profiles: prod
server:
port: 9000
enfin, j'essaie d'utiliser les propriétés fichiers, tous mes configs fonctionne très bien, quand je lance mon application peut utiliser le bon profil.
Et maintenant, je veux juste savoir ce qui ne va pas avec mes configs yml.
Merci d'avance!
Pouvez-vous regrouper toutes les pièces dans un référentiel Git pour que vous puissiez facilement voir exactement comment vous avez configuré les choses? –
Je viens de créer un projet simple exactement comme vous l'avez défini. Tout fonctionne comme prévu. Pouvez-vous essayer d'exécuter le pot en dehors de intelliJ? – Patrick