받는다는 프로필 다중 환경 설정을 사용하여

우리는 멀티 프로젝트 환경 구성을 수행 할 때, 등등 SpringBoot 자신의 애플리케이션 dev.yml, Maven의 프로필과 같은 우리가 선택할 수있는 많은 방법이있다. 여기에 제시된 다중 환경 구성 프로파일을 활용하는 방법이다.

첫째, 당신은 pom.xml 파일에 프로파일 구성을 추가해야합니다 :

    <profiles>
        <!-- 开发环境 默认激活-->
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>
            </properties>
        </profile>
        <!-- 生产环境 -->
        <profile>
            <id>publish</id>
            <properties>
                <env>publish</env>
            </properties>
        </profile>
        <!-- 本地环境 -->
        <profile>
            <id>local</id>
            <properties>
                <env>local</env>
            </properties>
            <!--默认启用-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

정보가 다른 환경 활성화 환경 요구로 전환 프로파일 파일, 즉 디바이스 게시 로컬 환경 <ENV> 태그는 복수의 내부에 배치. 기본 프로필이 활성화되어 <ActiveByDefault이> true로 설정되어 있음을 나타냅니다.

다음으로, 우리는이 파라미터 값은 특성 파일 필터 탭으로부터 유도하면서 그 마크를 대체하는 파라미터 값을 사용 나타내는 필터링 태그의 리소스가 true로 설정되고 싶다. 다음은 원래의 설명입니다 :

 Whether resources are filtered to replace tokens with parameterised values or not.
 The values are taken from the <code>properties</code> element and from the properties in the files listed
 in the <code>filters</code> element.
 <build>
        <!-- 指定使用filter -->
        <filters>
            <filter>src/main/resources/profiles/${env}/env.properties</filter>
        </filters>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <excludes>
                    <exclude>profiles/**</exclude>
                </excludes>
                <filtering>true</filtering>
            </resource>
        </resources> 
    </build>

필터는, 환경의 다른 값으로 구성된 파일, 다른 속성을 판독하기위한 환경 변수의 값을 나타내는 ENV 특성 프로파일에서 참조 :

앞에서 말하는 것은 진정한 </ 필터링> 매개 변수의 값이 마크를 대체 할 수 있습니다 나타냅니다, 그것은 무엇을 의미 하는가 <을 필터링>? 방법 application.yml에서 살펴 보자는 표현합니까?

server:
  port: 8080
  tomcat:
    max-threads: 800
    uri-encoding: UTF-8

spring:
  redis:
    host: ${spring.redis.host}
    timeout: ${spring.redis.timeout}
    pool:
      max-idle: ${spring.redis.pool.max-idle}
      max-active: ${spring.redis.pool.max-active}
    password: ${spring.redis.password}
    database: ${spring.redis.database}

따라서, 전체 프로세스에 의해 수행되어야한다 : - $와 같은 {spring.redis.host} 받는다는 컴파일 명령 실행 <리소스> <필터> 다음 속성 값의 특성 및 자원 SRC / 아래를 교체 / 메인 마커를 읽어 이.

마지막으로, 단 하나 개의 질문, 어떻게 환경을 전환? 당신이 도구 아이디어를 개발하는 경우, 바로 옆 창문으로 전환 :

명령 줄 컴파일러를 사용, 플러스 경우 -P 선택한 프로파일이 될 수있는 다음과 같습니다 :

clean -U package -P dev -DskipTests=true -f pom.xml

추천

출처www.cnblogs.com/jmcui/p/11925020.html