Gradle 풍미 만 빌드


93

누군가가 명령 줄을 통해 내 다른 버전 중 하나만 빌드 할 수 있는지 말해 줄 수 있습니까?

현재로서는 실행 방법을 보지 못했습니다. 예를 들면 다음과 같습니다.

gradle buildDev 

Dev가 내 다른 맛 중 하나 일 때. 실제로 다음을 실행해야합니다.

gradle build

그리고 모든 맛이 만들어졌습니다.

몇 가지 맛을 건너 뛰고 싶습니다. 가능할까요?

감사


먼저 gradle매개 변수없이 실행 을 시도한 다음 출력을 읽으십시오 ... 실행에 대한 힌트가있을 것입니다 gradle tasks...
Selvin

답변:


156

build작업 의 특징 별 버전은 없지만 assembleinstall작업 의 특징 별 버전이 있습니다. assembleAPK를 생성합니다. install장치 / 에뮬레이터에 설치합니다.

예를 들어,에 이 샘플 프로젝트 , 내가 두 제품의 맛 (정의 chocolatevanilla)과 총 3 개 빌드 유형을 ( debug, release, 및 mezzanine).

특히 러닝 gradle tasks쇼 :

Build tasks
-----------
assemble - Assembles all variants of all applications and secondary packages.
assembleChocolate - Assembles all builds for flavor Chocolate
assembleChocolateDebug - Assembles the Debug build for flavor Chocolate
assembleChocolateDebugTest - Assembles the Test build for the ChocolateDebug build
assembleChocolateMezzanine - Assembles the Mezzanine build for flavor Chocolate
assembleChocolateRelease - Assembles the Release build for flavor Chocolate
assembleDebug - Assembles all Debug builds
assembleMezzanine - Assembles all Mezzanine builds
assembleRelease - Assembles all Release builds
assembleTest - Assembles all the Test applications
assembleVanilla - Assembles all builds for flavor Vanilla
assembleVanillaDebug - Assembles the Debug build for flavor Vanilla
assembleVanillaDebugTest - Assembles the Test build for the VanillaDebug build
assembleVanillaMezzanine - Assembles the Mezzanine build for flavor Vanilla
assembleVanillaRelease - Assembles the Release build for flavor Vanilla

Install tasks
-------------
installChocolateDebug - Installs the Debug build for flavor Chocolate
installChocolateDebugTest - Installs the Test build for the ChocolateDebug build
installChocolateMezzanine - Installs the Mezzanine build for flavor Chocolate
installChocolateRelease - Installs the Release build for flavor Chocolate
installVanillaDebug - Installs the Debug build for flavor Vanilla
installVanillaDebugTest - Installs the Test build for the VanillaDebug build
installVanillaMezzanine - Installs the Mezzanine build for flavor Vanilla
installVanillaRelease - Installs the Release build for flavor Vanilla
uninstallAll - Uninstall all applications.
uninstallChocolateDebug - Uninstalls the Debug build for flavor Chocolate
uninstallChocolateDebugTest - Uninstalls the Test build for the ChocolateDebug build
uninstallChocolateMezzanine - Uninstalls the Mezzanine build for flavor Chocolate
uninstallChocolateRelease - Uninstalls the Release build for flavor Chocolate
uninstallVanillaDebug - Uninstalls the Debug build for flavor Vanilla
uninstallVanillaDebugTest - Uninstalls the Test build for the VanillaDebug build
uninstallVanillaMezzanine - Uninstalls the Mezzanine build for flavor Vanilla
uninstallVanillaRelease - Uninstalls the Release build for flavor Vanilla

2
그런 다음 flavour의 APK를 빌드하려면 assembleXXX를 사용해야합니다. 멋있는. 감사.
Jose M Lechon 2014 년

11
@Lechon은 : gradle assembleChocolateDebug가 발생합니다 build/apk/HelloProductFlavors-chocolate-debug-unaligned.apk프로젝트에 배치된다. 그래도 맛이 맛있을 때만 효과가있을 가능성을 배제 할 수는 없습니다. :-)
CommonsWare

2
@Zainodis :이 답변은 1 년이 넘었으며 모든 제품 버전에 대한 디버그 빌드 유형을 조합하는 작업을 추가했을 가능성이 있습니다.
CommonsWare

1
@Zainodis : Android 1.0 용 Gradle이 출시되었으므로 일부 속도가 느려질 것입니다.
CommonsWare

3
모듈이 있다면 모듈 접두사를 잊지 마세요:<module>:assemble<FlavorName>
Torge

28

대답을 통해 나는 혼란 스러웠 기 때문에 @CommonsWare가 제공하는 대답을 단순화 할 것입니다.

이것이 제품 풍미라고 생각하십시오

  • Dev
  • Preprod
  • 찌르다

운영

gradlew 작업

그러면 빌드 유형과 함께 모든 제품 버전이 나열됩니다.

assemble - Assembles all variants of all applications and secondary packages.
assembleAndroidTest - Assembles all the Test applications.
assembleDebug - Assembles all Debug builds.
assembleDEV - Assembles all DEV builds.
assemblePREPROD - Assembles all PREPROD builds.
assemblePROD - Assembles all PROD builds.
assembleRelease - Assembles all Release builds.

여기에서 쉽게 맛을 선택할 수 있으며이를 기반으로 빌드를 생성합니다.

gradlew assemblePREPROD


11

당신의 productFlavor가 초콜릿이라면 할 수 있습니다

./gradlew assembleChocolateRelease

또는

./gradlew assembleChocolateDebug

1

위의 답변에 추가하려면 Android 번들 (AAB)을 빌드하려면 다음을 사용할 수 있습니다.

# build flavor 'flavorName' only
./gradlew bundleFlavorName
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.