2017-10-06 3 views
6

저는 Jenkins와 Android 앱을 만들려고 노력 중이며 Jenkins의 노예 기계를 거의 제어 할 수 없습니다. 나는 안드로이드 SDK는 슬레이브에 설치해야하는 응용 프로그램을 구축하기 위해Android SDK Gradle의 일부로 다운로드하십시오.

, 그렇지 않으면 나는 예상대로 얻을 :.

"SDK의 위치를 ​​찾을 수 없습니다 local.properties 파일이나와 sdk.dir와 위치를 정의 ANDROID_HOME 환경 변수. "

그런 경우, 빌드 프로세스의 일부로 SDK를 다운로드하고 정상적인 종속성으로 사용할 수 있습니까?

이 말이 맞습니까?

도움 주셔서 감사합니다.

+0

참조 : https://github.com/codepath/android_guides/wiki/Building-Gradle-Projects-with-Jenkins-CI#install-the-android-sdk –

+0

제공된 링크를 확인하면 여전히 단계를 나타냅니다. Jenkins 노예에 Android SDK를 설치하십시오. 내 요점은, 내가 그 일을 쉽게 할 수 없다는 것입니다. – FelipeFraga

답변

2

Gradle Android 플러그인은 빌드시 누락 된 종속성을 자동으로 다운로드하도록 지원합니다. 그 트릭은 안드로이드 SDK에 관한 허용 된 라이센스 계약이 빌드 될 프로젝트와 번들되어야한다는 것입니다.

기본적으로 Android Studio (아마 dev 워크 스테이션)를 통해 허용 된 한 곳에서 허용 된 사용권 계약서를 복사하고 Jenkins 슬레이브의 Android SDK 홈 디렉토리에 복사되었는지 확인하십시오.

공식 문서에 licenses/이라는 디렉터리가 있지만이 파일은 Android SDK 폴더의 license/ 폴더에 있습니다.

+1

미안하지만, 당신이 나를 오해 한 것 같아요. 요점은 Jenkins Slave를 쉽게 변경할 수 없다는 것입니다. 따라서 Android SDK 홈이 없습니다. – FelipeFraga

+1

사과드립니다. 질문을 잘못 읽었습니다. 환경 변수를 통해 Android SDK Home을 설정할 수 있어야합니다. 빌드 디렉토리의 하위 디렉토리에 만들 수 있고, ANDROID_SDK_HOME 환경 변수가 그 서브 디렉토리를 가리 키도록 설정하고 라이센스 폴더를 그곳으로 이동할 수 있습니다. – cstarner

1

예 가능합니다.

apply plugin: 'android-sdk-manager' 
apply plugin: 'com.android.application' 
:

classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+' 

정규 '안드로이드'플러그인 전에 build.gradle에 플러그인을 적용 Gradle을 루트 수준에 플러그인을 추가 SDK 다운로드

을 자동화 this Gradle을 플러그인을 확인

참고 :이 플러그인은 더 이상 개발 중에 있지 않습니다.