다중 모듈 프로젝트에서 처음으로 Gradle을 사용하고 있으며 그러한 노력을 위해 종속성 관리를 수행하는 데 올바른/최선의 방법이 있는지 궁금해하고있었습니다. 내가 알 수있는 것에서는 두 가지 접근 방법이 있으며이 첫 번째 방법이 더 널리 받아 들여진 것처럼 보입니다. 다음과 같이 보일 것입니다 : [이 프로젝트가 불충분하다면 죄송합니다! ]gradle의 종속성 관리에 대한 합의
-- MyProject
---- settings.gradle
---- build.gradle
---- coreProject
---- servicesProject
------ servicesSubProject
---- warProject
---- common
모든 관리가 하나의 build.gradle 파일에서 수행되는이 방법에 따라 '(다른 외부 .gradle 파일은 다양한 유물을 정의하는 데 사용할 수 있음), 개별 프로젝트 종속성은 해당 관리 할 것 같은 프로젝트 '정의 섹션 뭔가 :
project('servicesProject:servicesSubProject') {
dependencies {
compile project(':common')
compile spring.data
compile spring.framework.persistence
compile spring.framework.security
compile persistence.hibernate.core
compile persistence.postgresql
}
}
대안은 (하위 프로젝트에 대한 의존성이 해당 프로젝트의 build.gradle 파일의 종속 섹션에 여기에) 이런 각각의 하위 프로젝트에 대한 build.gradle 파일을 가지고하는 것입니다
-- MyProject
---- settings.gradle
---- build.gradle
---- coreProject
------ build.gradle
---- servicesProject
------ build.gradle
------ servicesSubProject
-------- build.gradle
---- warProject
------ build.gradle
---- common
------ build.gradle
제가 말했듯이 제가 읽을 수 있었던 것에서는 첫 번째 접근법이 두 번째 접근법보다 더 널리 사용 된 것처럼 보입니다. Spring Framework의 gradle 파일은 이런 방식으로 설정됩니다. 그러나, 내가 충분히 풀러 가기 전에, 나는 또한 알고 있어야하는 상반 관계 또는 다른 영향이 있는지를 물어야한다고 생각했다. 어떤 생각을 해줘서 고마워!
피터, 귀하의 통찰력에 감사드립니다. 이것에 대해 생각해 보면, 의존성 관리를위한 단일 빌드 스크립트 접근법은 잘 확장되지 않습니다. 따라서 하위 프로젝트의 수가 너무 많으면 접근 방법이 도움이 될 것입니다. 그러나 우리는 Spring과 비슷한 상황에 있습니다 - 20 개 미만의 하위 프로젝트. 한 곳에서 모든 종속성을 쉽게 제어 할 수 있습니다. 우리는 특정 서브 프로젝트 (wtp 프로젝트)와 특정 버전을 제어하기위한 파일을 위해 다른 gradle 빌드 파일을 가지고 있지만, 현재는 메인 프로젝트의 종속성을 제어합니다. – JoeG
build.gradle의 이름이 서브 프로젝트 이름 다음에 붙는 것이 당연한데, 기본으로 설정하지 않겠습니까? 이 대회의 이점에 대해 더 분명히 말할 수 있습니까? –
열려있는 파일이 많은 멋진 IDE를 사용할 때 편리하다고 생각합니다. build.gradle이라는 이름의 모든 파일을 클릭하는 대신 반대로 .gradle이라는 이름을 사용하면 올바른 탭을 찾는 것이 더 쉽습니다. –