2016-11-30 1 views
0

나는 gradle을 사용하여 파이썬 바인딩을 컴파일하는 중입니다. 편의를 위해 plugin by linkedin이 있습니다.리포지토리가 추가되고 종속성이 해결되기 전에 작업을 실행하십시오.

파이썬 의존성을 아이비 리포지토리로 변환하는 pivy-importer 프로젝트도 포함되어 있습니다.

나는 파이썬 가져 오기 도구를 파이썬 작업으로 실행할 수 있도록 래핑하는 gradle 플러그인을 만들었습니다.

내 저장소는 다음과 같이 선언됩니다

repositories { 
    pyGradlePyPi() 
    ivy { 
     name 'pypi-local' //optional, but nice 
     url "${project.buildDir.path}/pythonIvy" 
     layout "pattern", { 
      ivy "[organisation]/[module]/[revision]/[module]-[revision].ivy" 
      artifact "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" 
      m2compatible = true 
     } 
    } 
} 

문제는, 그러나, 플러그인을 실행하기 전에 저장소가로드되는 것입니다.

파이썬 작업이 pinRequirements 그래서 난 이런 그 전에 내의 맞춤에게 pythonImporter 작업을 추가하고있다 실행하는 첫 번째 작업은 :

그러나
pinRequirements.dependsOn pythonImporter 

, 내가 그렇게 할 경우에도 콘솔은 pythonImporter 작업이 있음을 보여줍니다 이전에 실행 중이지만 종속성을 어셈블하려고하면 파일 시스템에 존재하더라도 종속성을 찾을 수 없습니다.

그러나 작업을 다시 실행하면 첫 번째 실행에서 저장소가 파일 시스템에 추가 되었기 때문에 작업이 다시 실행됩니다.

TL; 의존성이 프로젝트의 구성 repositories가로드 사용하여 아래에보고하기 전에 DR

나는 작업을 실행하는 방법이 필요합니다.

답변

0

작업 실행을 내 buildSrc 하위 프로젝트로 옮기고 작업 실행에 따라 build 작업을 만들었습니다. 프로젝트가 나머지 프로젝트보다 먼저 평가되므로 "빌드 전"논리를 수행 할 수 있기 때문에 효과가 있습니다.

관련 문제