gradle 빌드에는 세 개의 파일이 있습니다.
build.gradle
빌드 구성 스크립트를 정의하는gradle.properties
settings.gradle
질문
- 차이점은 무엇입니까
settings.gradle
&의gradle.properties
? - 설정에 넣어해야 할 때
settings.gradle
대gradle.properties
?
답변:
settings.gradle
settings.gradle
파일은 단지처럼 그루비 스크립트 build.gradle
파일. 다중 프로젝트 빌드의 settings.gradle
여러 build.gradle
스크립트와 비교하여 각 빌드에서 하나의 스크립트 만 실행됩니다 . settings.gradle
스크립트는 이전에 실행됩니다 build.gradle
스크립트와도 전에 Project
인스턴스가 만들어집니다. 따라서 Settings
개체 에 대해 평가 됩니다. 이 Settings
개체를 사용 하여 빌드에 하위 프로젝트를 추가하고 명령 줄 ( StartParameter
) 에서 매개 변수를 수정 하고 Gradle
개체에 액세스하여 수명주기 핸들러를 등록 할 수 있습니다 . 결과적으로 settings.gradle
설정이 빌드와 관련이 있고 반드시 프로젝트와 관련이 없거나 가능한 하위 프로젝트가 포함 되기 전에 로직이 필요한 경우 사용 하십시오 .
gradle.properties
이 gradle.properties
파일은 객체 Properties
의 범위 Project
(소위 '프로젝트 속성'이라고 함) 에 자동으로 포함되어 특별한 역할 만 받는 단순한 Java 파일입니다 . 문자열 값만 허용하는 간단한 키-값 저장소입니다 (따라서 목록이나 배열을 직접 분할해야 함). gradle.properties
다음 위치 에 파일을 넣을 수 있습니다 .
.gradle
디렉토리 (사용자 또는 환경 관련 값의 경우)다중 모듈 프로젝트에는 하나의 기본 모듈 과 여러 하위 모듈이 있습니다. 다음 레이아웃이 있습니다.
(root)
+- settings.gradle
+- build.gradle # optional (commonly present)
+- gradle.properties # optional
+-- buildSrc/ # optional
| +- build.gradle
| +-- src/...
+-- my-gradle-stuff/ # optional
| +- utils.gradle # optional
+-- sub-a/
| +- build.gradle
| +- src/
+-- sub-b/
+- build.gradle
+- src/
하위 모듈은 하위 폴더의 더 깊은 곳에있을 수도 있지만 settings.gradle의 코드를 수정하지 않으면 이름에 해당 폴더의 이름이 포함됩니다.
settings.gradle의 주요 역할은 포함 된 모든 하위 모듈을 정의하고 모듈 트리의 디렉토리 루트를 표시하는 것이므로 settings.gradle
다중 모듈 프로젝트에서 하나의 파일 만 가질 수 있습니다 .
rootProject.name = 'project-x'
include 'sub-a', 'sub-b'
설정 파일도 groovy로 작성되며 하위 모듈 조회를 사용자 정의 할 수 있습니다.
모듈 당 하나의 파일이 있으며이 모듈에 대한 빌드 로직이 포함되어 있습니다.
에서 build.gradle
의 파일 메인 모듈 , 당신은 사용할 수 있습니다 allprojects {}
또는 subprojects {}
다른 모든 모듈에 대한 설정을 정의 할 수 있습니다.
build.gradle
하위 모듈 의 파일에서 다음을 사용할 수 있습니다.compile project(':sub-a')
하나의 하위 모듈이 다른 하위 모듈에 종속되도록하는 데 .
이것은 선택 사항이며 주 목적은 gradle 자체를 실행하는 데 사용할 시작 옵션을 제공하는 것입니다.
org.gradle.jvmargs=-Xmx=... -Dfile.encoding=UTF-8 ...
org.gradle.configureondemand=true
이러한 값은 file로 재정의 할 수 있으며 USER_HOME/.gradle/gradle.properties
gradle 명령 줄 인수로 재정의 할 수 있습니다 . 또한 다음을 사용하여이 파일에서 빌드에 대한 환경 변수를 설정할 수 있습니다.systemProp.
접두사로 .
이 파일의 모든 속성은 모든 build.gradle에서 사용할 수 있으므로 일부 프로젝트는 종속성 버전 또는 릴리스 정보도 gradle.properties
파일의 남용 일 수 있습니다.
(폴더 또는 파일의 모든 이름이 가능합니다.) 정의를 재사용하기 위해 추가 사용자 정의 gradle 파일을 정의하고 다음을 통해 다른 gradle 파일에 포함 할 수 있습니다.
apply from: "$rootDir/gradle/utils.gradle"
이것을 넣을 다른 장소는 src/gradle
또는src/build/gradle
이 폴더는 특별하며 그 자체로 별도의 gradle 프로젝트와 같습니다. 다른 작업을 수행하기 전에 빌드되며 다른 gradle 파일에서 사용할 수있는 기능을 제공 할 수 있습니다. 기술적 인 이유로이 폴더에 대한 참조에 대한 IDE 지원은 여러 build.gradle
파일에서 별도의 위치로 공통 코드를 추출하는 다른 방법보다 훨씬 잘 작동 합니다.
플러그인을 작성하고 배포하는 대신 Java, groovy 또는 kotlin에서 복잡한 사용자 지정 빌드 로직을 정의 할 수 있습니다. 단위 테스트를 할 수 있으므로 사용자 지정 빌드 코드를 단위 테스트하는데도 유용합니다. 의 소스 폴더 구조는 buildSrc
모든 java / groovy / kotlin 프로젝트와 같이 조정할 수 있습니다.