Gradle 실전__자동 교체 프로파일
8165 단어 gradle
Gradle 실전__자동 교체 프로파일
프로젝트 개발 과정에서 일반적으로 프로그램은 개발-테스트-온라인 세 단계에 세 가지 서로 다른 환경에 배치된다. 예를 들어 데이터베이스에 연결된 서버 IP와 계정 비밀번호가 다르고 호출된 외부 서비스는 서로 다른 서버를 가리킨다.서로 다른 환경에서 서로 다른 프로필을 사용하는 문제에 대해 주로 두 가지 해결 방안이 있을 수 있다.
자리 표시자 대체
먼저 자원 폴더 만들기mkdir src\main\resources
리소스 경로에서 jdbc를 만듭니다.properties 파일[email protected]@
[email protected]@
[email protected]@
이어서 Groovy의 문법을 이용하여 프로젝트 폴더에 config를 만듭니다.groovy 프로필, 앞에서 만든 jdbc에 대응합니다.properties 파일, 개발/테스트/생산 세 환경의 jdbc 매개 변수 설정environments {
dev {
jdbc {
url = 'dev_ip'
user = 'dev_user'
password = 'dev_pwd'
}
}
test {
jdbc {
url = 'test_ip'
user = 'test_user'
password = 'test_pwd'
}
}
prd {
jdbc {
url = 'prd_ip'
user = 'prd_user'
password = 'prd_pwd'
}
}
}
Gradle은 스크립트를 실행할 때 -P가 매개 변수를 전송하는 방식으로 서로 다른 환경을 구분할 수 있기 때문에 우리는build에 있습니다.gradle에 ext 속성 블록을 추가하여 전송된 매개 변수로부터 미리 설정된 프로필 속성을 변경합니다. 여기에 전송된 env 매개 변수를 통해 현재 구축할 환경을 결정한다고 가정하십시오.ext {
profile = project['env']
}
또한 프로필에 따라 앞에 설정된 config를 읽을 수 있는 함수를 사용자 정의합니다.groovy 파일def loadGroovyConfig(){
def configFile = file('config.groovy')
new ConfigSlurper(profile).parse(configFile.toURL()).toProperties()
}
이어서 프로세스 Resources task를 바꾸어 자원 폴더의 프로필을 config에 따라 변경합니다.groovy 파일의 내용으로 자리 표시자 바꾸기processResources {
from(sourceSets.main.resources.srcDirs) {
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: loadGroovyConfig())
}
}
war {
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: loadGroovyConfig())
}
구성 스크립트를 실행할 때 env 파라미터를 전송합니다gradle clean build -Penv=dev
실행에 성공하면build\resources\main 이 경로에서 이미 교체된 jdbc를 볼 수 있습니다.properties 파일,jar 패키지에 포장됩니다.jdbc.url=dev_ip
jdbc.user=dev_user
jdbc.password=dev_pwd
자원 폴더 경로 변경
프로젝트에 있는 프로필이properties 파일을 제외하고 xml 파일이 있다고 가정하면 우선config 폴더에 서로 다른 환경의 다른 형식의 프로필 경로를 설정합니다mkdir config\properties\dev
mkdir config\properties\test
mkdir config\properties\prd
mkdir config\xml\dev
mkdir config\xml\test
mkdir config\xml\prd
다양한 환경의 프로파일을 해당 폴더 아래에 배치합니다.[gradle_sample]
├---[.gradle]
│ ├---
│
├---[build]
│ ├---
│
├---[config]
│ ├---[properties]
│ │ ├---[dev]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[prd]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[test]
│ │ ├---jdbc.properties
│ │
│ ├---[xml]
│ │ ├---[dev]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[prd]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[test]
│ │ ├---applicationContext.xml
│
├---[gradle]
│ ├---
│
├---build.gradle
├---gradlew
├---gradlew.bat
├---settings.gradle
이어서 build를 수정합니다.gradle 안에 있는sourceSets 속성 블록sourceSets {
main {
resources {
srcDir "config/properties/${profile}", "config/xml/${profile}"
}
}
}
마지막으로 구성 스크립트를 실행할 때 env 매개 변수에 대응하는 config 경로에서build\resources\main에 있는 jdbc로 복사되는 것을 볼 수 있습니다.properties 파일 및 applicationContext.xml 파일
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Groupie의 ViewHolder를 사용해 보았습니다.
Groupie는 Android의 recycler-view를 쉽게 사용할 수있는 라이브러리이지만 groupie-databinding은 deprecated되었습니다.
이번에는 권장되는 (Poi) groupie-viewb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
먼저 자원 폴더 만들기
mkdir src\main\resources
리소스 경로에서 jdbc를 만듭니다.properties 파일
[email protected]@
[email protected]@
[email protected]@
이어서 Groovy의 문법을 이용하여 프로젝트 폴더에 config를 만듭니다.groovy 프로필, 앞에서 만든 jdbc에 대응합니다.properties 파일, 개발/테스트/생산 세 환경의 jdbc 매개 변수 설정
environments {
dev {
jdbc {
url = 'dev_ip'
user = 'dev_user'
password = 'dev_pwd'
}
}
test {
jdbc {
url = 'test_ip'
user = 'test_user'
password = 'test_pwd'
}
}
prd {
jdbc {
url = 'prd_ip'
user = 'prd_user'
password = 'prd_pwd'
}
}
}
Gradle은 스크립트를 실행할 때 -P가 매개 변수를 전송하는 방식으로 서로 다른 환경을 구분할 수 있기 때문에 우리는build에 있습니다.gradle에 ext 속성 블록을 추가하여 전송된 매개 변수로부터 미리 설정된 프로필 속성을 변경합니다. 여기에 전송된 env 매개 변수를 통해 현재 구축할 환경을 결정한다고 가정하십시오.
ext {
profile = project['env']
}
또한 프로필에 따라 앞에 설정된 config를 읽을 수 있는 함수를 사용자 정의합니다.groovy 파일
def loadGroovyConfig(){
def configFile = file('config.groovy')
new ConfigSlurper(profile).parse(configFile.toURL()).toProperties()
}
이어서 프로세스 Resources task를 바꾸어 자원 폴더의 프로필을 config에 따라 변경합니다.groovy 파일의 내용으로 자리 표시자 바꾸기
processResources {
from(sourceSets.main.resources.srcDirs) {
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: loadGroovyConfig())
}
}
war {
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: loadGroovyConfig())
}
구성 스크립트를 실행할 때 env 파라미터를 전송합니다
gradle clean build -Penv=dev
실행에 성공하면build\resources\main 이 경로에서 이미 교체된 jdbc를 볼 수 있습니다.properties 파일,jar 패키지에 포장됩니다.
jdbc.url=dev_ip
jdbc.user=dev_user
jdbc.password=dev_pwd
자원 폴더 경로 변경
프로젝트에 있는 프로필이properties 파일을 제외하고 xml 파일이 있다고 가정하면 우선config 폴더에 서로 다른 환경의 다른 형식의 프로필 경로를 설정합니다mkdir config\properties\dev
mkdir config\properties\test
mkdir config\properties\prd
mkdir config\xml\dev
mkdir config\xml\test
mkdir config\xml\prd
다양한 환경의 프로파일을 해당 폴더 아래에 배치합니다.[gradle_sample]
├---[.gradle]
│ ├---
│
├---[build]
│ ├---
│
├---[config]
│ ├---[properties]
│ │ ├---[dev]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[prd]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[test]
│ │ ├---jdbc.properties
│ │
│ ├---[xml]
│ │ ├---[dev]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[prd]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[test]
│ │ ├---applicationContext.xml
│
├---[gradle]
│ ├---
│
├---build.gradle
├---gradlew
├---gradlew.bat
├---settings.gradle
이어서 build를 수정합니다.gradle 안에 있는sourceSets 속성 블록sourceSets {
main {
resources {
srcDir "config/properties/${profile}", "config/xml/${profile}"
}
}
}
마지막으로 구성 스크립트를 실행할 때 env 매개 변수에 대응하는 config 경로에서build\resources\main에 있는 jdbc로 복사되는 것을 볼 수 있습니다.properties 파일 및 applicationContext.xml 파일
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Groupie의 ViewHolder를 사용해 보았습니다.
Groupie는 Android의 recycler-view를 쉽게 사용할 수있는 라이브러리이지만 groupie-databinding은 deprecated되었습니다.
이번에는 권장되는 (Poi) groupie-viewb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
mkdir config\properties\dev
mkdir config\properties\test
mkdir config\properties\prd
mkdir config\xml\dev
mkdir config\xml\test
mkdir config\xml\prd
[gradle_sample]
├---[.gradle]
│ ├---
│
├---[build]
│ ├---
│
├---[config]
│ ├---[properties]
│ │ ├---[dev]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[prd]
│ │ │ ├---jdbc.properties
│ │ │
│ │ ├---[test]
│ │ ├---jdbc.properties
│ │
│ ├---[xml]
│ │ ├---[dev]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[prd]
│ │ │ ├---applicationContext.xml
│ │ │
│ │ ├---[test]
│ │ ├---applicationContext.xml
│
├---[gradle]
│ ├---
│
├---build.gradle
├---gradlew
├---gradlew.bat
├---settings.gradle
sourceSets {
main {
resources {
srcDir "config/properties/${profile}", "config/xml/${profile}"
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Groupie의 ViewHolder를 사용해 보았습니다.Groupie는 Android의 recycler-view를 쉽게 사용할 수있는 라이브러리이지만 groupie-databinding은 deprecated되었습니다. 이번에는 권장되는 (Poi) groupie-viewb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.