通過自動構建應用程式(maven)設定正確的彈簧輪廓

通過為不同的環境或用例建立多個屬性檔案,有時很難手動將 active.profile 值更改為正確的值。但是有一種方法可以在使用 maven-profiles 構建應用程式時在 application.properties 檔案中設定 active.profile

假設我們的應用程式中有三個環境屬性檔案:

application-dev.properties

spring.profiles.active=dev
server.port=8081

application-test.properties

spring.profiles.active=test
server.port=8082

application-prod.properties

spring.profiles.active=prod
server.port=8083

這三個檔案的埠和活動配置檔名稱不同。

在主 application.properties 檔案中,我們使用 maven 變數設定彈簧配置檔案 :

application.properties

spring.profiles.active=@profileActive@

之後我們只需在我們的 tihuan 中新增 maven 配置檔案。我們將為所有三種環境設定配置檔案:

 <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>

你現在可以使用 maven 構建應用程式。如果你沒有設定任何 maven 配置檔案,它會構建預設配置檔案(在這個例子中它是 dev)。要指定一個,你必須使用 maven 關鍵字。在 maven 中設定配置檔案的關鍵字是 -P,後面跟著配置檔案的名稱:mvn clean install -Ptest

現在,你還可以建立自定義構建並將其儲存在 IDE 中以加快構建速度。

例子:

mvn clean install -Ptest

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)

2017-06-06 11:24:44.885  INFO 6328 --- [           main] com.demo.SpringBlobApplicationTests      : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 11:24:44.886  INFO 6328 --- [           main] com.demo.SpringApplicationTests      : The following profiles are active: test

mvn clean install -Pprod

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)

2017-06-06 14:43:31.067  INFO 6932 --- [           main] com.demo.SpringBlobApplicationTests      : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 14:43:31.069  INFO 6932 --- [           main] com.demo.SpringApplicationTests      : The following profiles are active: prod