通过自动构建应用程序(maven)设置正确的弹簧轮廓

通过为不同的环境或用例创建多个属性文件,有时很难手动将 active.profile 值更改为正确的值。但是有一种方法可以在使用 maven-profiles 构建应用程序时在 application.properties 文件中设置 active.profile

假设我们的应用程序中有三个环境属性文件:

application-dev.properties

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

application-test.properties

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

application-prod.properties

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

这三个文件的端口和活动配置文件名称不同。

在主 application.properties 文件中,我们使用 maven 变量设置弹簧配置文件 :

application.properties

 placeholderCopyspring.profiles.active=@profileActive@

之后我们只需在我们的 tihuan 中添加 maven 配置文件。我们将为所有三种环境设置配置文件:

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

 placeholderCopy.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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

 placeholderCopy.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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