2013-08-07 2 views
16

assembleDebug를 실행하면 내가 의존하는 프로젝트의 릴리스 관련 작업이 호출됩니다.Android gradle 빌드 : running assembleDebug는 프로젝트 종속성의 릴리스 작업을 호출합니다.

'y'에 따라 'x'라는 프로젝트가 있습니다. mergeReleaseProguardFiles, packageReleaseAidl, 등 ... 등

+0

나는 또한 이것에 대해 혼란스러워합니다. 당신은 지금이 답변을 얻지 못했습니다 (1 년 전에 있었던 것을 보았습니다)? : moduleA : assembleDebug, : moduleB : assembleDebug 유일한 릴리스 관련 작업은 preReleaseBuild입니다 (어떤 이유로 assembleDebug의 일부이므로 정상이어야합니다).하지만 할 때 : moduleX : assembleDebug (moduleA/B에 따라 다름)와 같이 많은 릴리스 작업이 필요합니다. 내가 걱정하는 이유는 이것이 buildTypes {release {runProguard true}를 사용하여 디버그 빌드를 원하지 않기 때문입니다. – riper

+0

예, 답을 얻지 못했습니다 :) – Guy

+0

모든 빌드 파일 (예 : Android Studio에서 비어있는 새 프로젝트 만들기)에서 발생합니까 아니면 특정 빌드 파일에서만 발생합니까? 후자의 경우 질문을 수정하고 세부 정보를 추가하십시오. 또한 릴리스 작업이 실행되고 있음을 어떻게 결정합니까? –

답변

3

편집 : 더 이상 진실하지 안드로이드 Gradle을 플러그인 3.x를

내가 gradle assembleDebug 때 y를 호출

또한 라이브러리는 debugrelease 아티팩트를 게시합니다. 프로젝트에 풍미 또는 사용자 정의 유형이있는 경우 해당 유형도 생성됩니다. 또한 모듈 전반에서 자동으로 변형을 검색합니다. 일치하지 않으면 matchingFallback을 입력해야 모듈 전체에서 변형을 검색 할 수 있습니다. 더 많은 정보는 여기에서 찾을 수 있습니다 : https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors


안드로이드 라이브러리 모듈은 "릴리스"빌드 형식에만 게시합니다. 그들은 "디버그"빌드 유형이 없습니다. 응용 프로그램 모듈도 디버그 버전을 빌드하고 라이브러리의 릴리스 버전을 사용합니다.

당신은 "디버그"는 모듈의 build.gradle 파일에 다음을 사용하여 라이브러리 의존성의 타입 구축 활성화 할 수 있습니다 : 다음

android { 
    publishNonDefault true 
    ... 
} 

당신이 다른 모듈이 의존성을 사용하는 경우,이 같은 사용해야를 :

dependencies { 
    releaseCompile project(path: ':moduleY', configuration: 'release') 
    debugCompile project(path: ':moduleY', configuration: 'debug') 
} 

내 응용 프로그램에서 같은 트릭을 사용하고 있습니다. 공유 모듈이 있고 모듈의 디버그 버전을 사용합니다. 여기에서 세부 정보 찾기 :

https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90

관련 문제