2017-12-13 1 views
0

저는 Gradle을 처음 접했고 작업 중심의 접근 방식과 사용자 정의 기능에 매료되었습니다. 그래서 저는 기본적인 것을 넘어서 뭔가를하는 방법을 이해하는데 도움이되는 질문을 가지고 있습니다.Gradle : 파일의 프로젝트 종속성

프로젝트의 종속성에 대한 정보가 들어있는 간단한 텍스트 파일이 있다고 가정합니다. 이 내가 다음과 같이이 파일에서 라인을 따라 파일을 생성 할 몇 가지 코드가없는 것을

- dependency1 
    from: 'foobar' 
    version: '1' 
- dependency2 
    from: 'foobaz' 
    version: '1' 

주와 같은 예를 들어 뭔가 :

compile 'commons-lang:commons-lang 2.6' 
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4' 

구성하는 방법이 있나요 내 프로젝트 그래서 내 프로젝트의 종속성이 파일에서 가져온 것입니다 (독점적으로 아닌)?

텍스트 파일은 다른 작업 (예 : Docker 컨테이너에 추가 할 파일)에 사용되는 다른 아티팩트를 생성하는데도 사용됩니다. 따라서 텍스트 파일을 선언 할 수는 있지만 의존성은 일반적으로 텍스트 파일을 생성하지만, 현재로서는 그렇게하는 것이 쉽지 않습니다.

+0

당신은 [Gradle을-받는다는 공유]에 관심이있을 수 있습니다 (https://github.com/uklance

더 자세한 내용은이 오래된 게시물을 참조/gradle-maven-share) 및 [gradle-maven-transform] (https://github.com/uklance/gradle-maven-transform) 플러그인을 사용합니다. 첫 번째는 pom.xml을 파싱하여 gradle 모델에 종속성을 추가합니다. 두 번째는 pom.xml에서 그라데이션 파일을 생성합니다.이 파일은 이후 "적용"됩니다. –

답변

0

예, 파일을 구문 분석하고 목록을 만드는 그루비 기능을 직접 작성할 수 있습니다. 그런 다음 종속성 폐쇄에이지도를 전달할 수 있습니다

또한
List<String> compileLibraries() { 
    // ... parse yaml and return list 
} 

dependencies { 
    compile compileLibraries() 
} 

는 특별한 buildSrc 하위 폴더에서 사용자 지정 Gradle을 하위 프로젝트를 설정하고 거기 도우미 함수를 작성하는 것을 고려 YAML 구문 분석 라이브러리를 사용 할 수 있습니다. buildSrc 프로젝트 https://discuss.gradle.org/t/programmatically-adding-dependencies/7575/12

그리고 여기 : https://docs.gradle.org/current/userguide/organizing_build_logic.html#sec:build_sources

관련 문제