2013-05-08 2 views
2

많은 프로젝트를 빌드하기 위해 Gradle 스크립트를 작성하고 있습니다. 그들은 동일한 저장소를 사용하므로 각각의 하위 프로젝트를 정의하는 대신 모든 하위 프로젝트의 저장소를 정의하고 싶습니다. 그래서 개별 프로젝트의 build.gradle에서 리포지토리 정의를 상위 폴더의 build.gradle로 이동하려고합니다.Gradle의 모든 하위 프로젝트에 대한 리포지토리를 정의하는 방법

subprojects{ 
    repositories{ 
     mavenCentral() 
     flatDir{ 
      name 'uploadRepository' 
      dirs '../../sharedlib' 
     } 
    } 
} 

그러나 하위 프로젝트는 저장소 정의를 전혀 찾을 수 없습니다. 하위 프로젝트 클로저 작업에서 다른 구성을 이동합니다. 종속성 및 속성 구성을 시도했습니다. 그들은 모두 문제없이 작동합니다. 왜 저장소가 다르게 작동하는지 나는 모른다. Google 검색에서 하위 프로젝트 내에 저장소를 배치하는 예를 찾을 수 없지만 잘못된 방법으로 생각합니다. 뭐가 잘못 됐는지 말해줘. 감사합니다.

+0

"그러나 하위 프로젝트는 저장소 정의를 전혀 찾을 수 없습니다." 어떻게 알 수 있니? 정확히 어떤 효과를보고 있습니까 (어떤 작업이 실패했는지, 오류 메시지는 무엇입니까?)? 그것은 다음과 같은 오류 메시지와 함께 불평 –

+0

: * 장소 : 빌드 파일 'F : \ build_scripts 임시 \의 build_standardization의 \ 실험 \ 포틀릿 \ TFANetRegions \ build.gradle \'라인 : 69 잘못된 무엇 * : 문제 루트 프로젝트 'TFANetRegions'를 평가했습니다. > 저장소 컨테이너에서 'uploadRepository'속성을 찾을 수 없습니다. – user1695166

+0

내 하위 프로젝트를 포함하는 상위 프로젝트에 settings.gradle을 넣습니다. 이렇게하면 Gradle이 저장소를 찾을 수 있습니다. 그러나 이제는 종속성 및 속성 설정 (sourceCompatibility = 1.5)을 찾을 수 없습니다. settings.gradle이 없으면 문제가되지 않았습니다. 이제 settings.gradle이 실제로하는 일을 혼란스럽게 생각합니다. – user1695166

답변

0

업로드 저장소가 project.repositories 블록에 있지만 업로드 작업 (예 : uploadArchives)에 선언되어 있지 않은 것을 제외하면 저장소 선언이 잘 보입니다. Gradle User Guide에는 세부 정보가 있습니다.

1

나는 결국 문제가 무엇인지 알아 냈습니다. 원래 부모 폴더에서 settings.gradle을 놓쳤습니다. (종속성 설정이이 파일 없이도 작동하는 이유는 모르겠다.) 내가 넣은 후, 하위 프로젝트는 리포지토리를 찾을 수 있었지만 종속성과 상위 프로젝트에서 정의한 하나의 속성 (sourceCompatibility = 1.5)을 찾을 수 없었다. 더 오래 작동합니다. 하위 플러그인의 build.gradle에서 부모의 하위 프로젝트로 'war'을 이동해야합니다. {...} 종속성 및 sourceCompatibility가 플러그인에서 제공하는 것이기 때문에 그 그림을 봅니다. 그리고 어떻게 든 Gradle은 하위 프로젝트의 스크립트를보고 플러그인을 먼저 찾지 않습니다.

관련 문제