2017-10-05 19 views
0

J'ai une application Android Studio qui a maintenant près de 100 "productFlavors" associés, bien sûr tous définis dans le build.gradle. Je voudrais les construire à partir de la ligne de commande car les construire un à la fois dans l'IDE serait un cauchemar. Mon problème se pose lorsque je rencontre une erreur au milieu de leur construction en utilisant la ligne de commande gradlew.bat assembleRelease. Une fois l'erreur corrigée, je voudrais commencer à construire au point d'échec (peut-être 50 goûts dans la construction) plutôt qu'au début. Y a-t-il un moyen de faire ça avec Gradle? Avec Ant, j'ai été obligé de les commenter, j'espère qu'il y aura un meilleur moyen avec Gradle puisque la structure est beaucoup plus compliquée dans le fichier.Android gradlew.bat assemblerSupprimer le paquet de départ

MISE À JOUR

Je suis finalement allé avec une solution qui englobe Gradle et Ant (dégueu, mais cela fonctionne). Fondamentalement, je voulais construire sur de mes 100 saveurs White Label, avec un préfixe de la version, puis copiez-le à l'APK de livraison sans la version. Pour ce faire, mon script ANT ressemble:

#!/bin/sh 
DEPLOY_DIR=C:/AndroidBuilds/MyCompany.Build 
VERSION="63" 

NAME="WhiteLabel1" 
DEPLOY_FOLDER="whitelabel1" 
APK_NAME=$NAME$".apk" 
gradlew assemble$NAME 
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME 

NAME="WhiteLabel2" 
DEPLOY_FOLDER="whitelabel2" 
APK_NAME=$NAME$".apk" 
gradlew assemble$NAME 
cp $DEPLOY_DIR/$DEPLOY_FOLDER/$VERSION"-"$APK_NAME $DEPLOY_DIR/$DEPLOY_FOLDER/$APK_NAME 

Il en résulte 2 APK généré, 63-WhiteLabel1.APK et 63-WhiteLabel2.APK, qui sont ensuite copiés dans leurs répertoires de déploiement respectifs WhiteLabel1.APK et WhiteLabel2.APK

Je suppose que si vous êtes intelligent vous pourriez faire en sorte que cela prenne des paramètres pour exécuter celui que vous voulez, mais Android Studio fait un travail assez décent de cela.

Répondre

1

Vous ne pouvez pas le faire spécifiquement, mais vous pouvez contourner le problème et le résoudre avec un peu de magie de script.

Si vous avez un type de construction appelé Release, et une saveur appelée Iron, vous pouvez exécuter:

gradlew.bat assembleIronRelease 

Vous pouvez écrire un script qui traverserait une boucle de toutes les saveurs, et si elle échoue , il te dirait lequel a échoué. Vous pouvez ensuite corriger l'erreur et recommencer le script, en lui disant de commencer à la saveur X (vous devrez écrire la logique pour lui dire par où commencer).

+0

Serait-ce un script Gradle ou un autre type de script? –

+0

Utilisez je pourrais écrire un script Ant qui déclenche le script Gradle avec toutes mes saveurs énumérées ci-dessus, avec la logique de l'échec? –

+0

Je suis finalement allé avec un script Ant qui a fait plusieurs choses en plus de la construction gradle. –