我使用彈簧引導1.5.2,並使用配置文件,但我發現了一件很奇怪的事情。彈簧引導始終使用相同的配置文件
CONFIGS在application.yml
spring:
profiles:
active: @[email protected]
應用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
應用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
我的pom.xml,只包含資源部分和配置文件部分。
<!-- 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>
我現在想用測試概,發現一切正常,@[email protected]
已經更換到test
;
mvn clean package -Dmaven.test.skip=true -Ptest
看起來好像一切正常。
但是當我嘗試運行jar,它總是使用開發輪廓,雖然application.yml
顯示了我們現在使用的test or prod
輪廓。
我不知道哪裏是錯誤的,我陽明CONFIGS。我嘗試將所有配置文件配置包含在一個application.yml文件中。但應用程序仍然使用dev
配置文件。
完全CONFIGS在一個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
最後,我嘗試使用性能文件,所有我的configs的正常工作,當我運行我的應用程序可以使用正確的個人資料。
而現在,我只想知道我的yml配置有什麼問題。
在此先感謝!
你可以把所有的東西放在一個Git倉庫中,讓你很容易看到_exactly_你如何配置東西? –
我剛剛創建了一個與您定義的完全相同的簡單項目。一切工作如預期。你可以嘗試在intelliJ之外運行jar嗎? – Patrick