Programing

모든 프로젝트와 하위 프로젝트의 차이점은 무엇입니까

lottogame 2020. 8. 16. 21:50
반응형

모든 프로젝트와 하위 프로젝트의 차이점은 무엇입니까


다중 프로젝트 gradle 빌드에서 누군가 "allprojects"섹션과 "subprojects"섹션의 차이점이 정확히 무엇인지 말해 줄 수 있습니까? 단지 상위 디렉토리? 누구든지 둘 다 사용합니까? 그렇다면 일반적으로 각 항목에 무엇이 들어가는 지 결정하는 일반적인 규칙이 있습니까?

관련 질문 : 두 구문의 차이점은 무엇입니까 (실제로 모든 프로젝트 및 하위 프로젝트에 해당) :

subprojects {  ...
}

configure(subprojects) { ...
}

당신은 언제 다른 하나를 하시겠습니까?


다중 프로젝트 gradle 빌드에는 rootProject와 하위 프로젝트가 있습니다. 두 가지의 조합은 모두 프로젝트입니다. rootProject는 빌드가 시작되는 곳입니다. 일반적인 패턴은 rootProject에 코드가없고 하위 프로젝트는 Java 프로젝트입니다. 이 경우 자바 플러그인을 하위 프로젝트에만 적용합니다.

subprojects {
    apply plugin: 'java'
} 

이것은 하위 모듈을 빌드하는 maven 집계 pom 프로젝트와 동일합니다.

두 구문과 관련하여 똑같은 작업을 수행합니다. 첫 번째는 더 좋아 보입니다.


Ryan의 대답에 덧붙여,이 configure방법은 개체의 사용자 지정 하위 집합을 구성하려는 경우 중요합니다. 예를 들어 configure([project(":foo"), project(":bar")]) { ... }또는 configure(tasks.matching { it.name.contains("foo") }) { ... }.

사용시기 allprojectssubprojects상황에 따라 다릅니다. 종종 둘 다 사용합니다. 예를 들어 Java 플러그인과 같은 코드 관련 플러그인은 일반적으로에 적용됩니다 subprojects. 많은 빌드에서 루트 프로젝트에 코드가 포함되어 있지 않기 때문입니다. 반면 Eclipse 및 IDEA 플러그인은 일반적으로 allprojects. 확실하지 않은 경우 예제 및 기타 빌드 및 / 또는 실험을 살펴보십시오. 일반적인 목표는 관련없는 구성을 피하는 것입니다. 그런 의미 에서 예상되는 결과를 제공하는 subprojects것보다 낫습니다 allprojects.

참고 URL : https://stackoverflow.com/questions/12077083/what-is-the-difference-between-allprojects-and-subprojects

반응형