2012-03-14 1 views
6

J'ai une application Android Mavenized et le client veut du soutien pour le skinning au moment de la construction.Skinning application Android avec des profils de construction Maven

Par exemple: mvn installation propre -P Developer, mvn installation propre -P Customer1, mvn installation propre -P Customer2

En d'autres termes, différents besoins des clients peu différent ensemble d'images, chaînes différentes (appName, copyright, etc) et aussi, certains des éléments dans les mises en page doivent être cachés ou affichés (profil développeur), donc des dispositions différentes aussi. Ma première pensée a été d'avoir des dossiers comme res-customer1, res-customer2 en parallèle avec le répertoire res standard et de faire la permutation dans la définition de profil dans pom.xml, aussi renommer en res, mais cela ne semble pas travail. Je reçois toujours le dossier res original dans la construction et dans ce cas, duplique l'erreur. Est-ce que cela signifie que l'échange devrait avoir lieu à l'intérieur de la res? Je n'ai pas spécifié resourceDirectory dans la configuration du plugin android maven.

J'ai été googling beaucoup, mais jusqu'à présent, je n'ai trouvé personne avec le même problème. Comment le résoudre? Y a-t-il un modèle général pour cela?

Un grand merci à l'avance

+1

Avez-vous déjà essayé spec ify resourceDirectory dans la configuration de android maven dans chaque profil? par exemple $ {project.basedir}/res-custom1. Cela devrait fonctionner comme prévu. – yorkw

+0

Je travaille dessus, on dirait que tu as raison, mon ami. Je reviendrai avec une réponse définitive, mais merci beaucoup. – MartinC

+0

OK, ça marche, tu as fait ma journée, yorkw :) Merci beaucoup. – MartinC

Répondre

1

Si vous souhaitez utiliser des actifs ou des ressources pour les différents profils de Buid et si vous voulez même de fusionner plusieurs répertoires de ces chaque génération autrement, vous pouvez suivre ce grand blog:

https://ebuddytechblog.wordpress.com/2013/04/08/branded-android-builds-using-maven/

+0

Merci, je vais jeter un oeil – MartinC

+0

@Blackhex Le lien ne semble plus valable: Attention! Mise à niveau du mappage de domaine pour ce domaine introuvable. Veuillez vous connecter et accéder à la page "Domains Upgrades" de votre blog pour utiliser ce domaine. – NightSkyDev

+0

Lien mis à jour, merci de le signaler. – Blackhex

6

Basé sur la réponse de yorkw, cette solution fonctionne pour moi:

Pour chaque profil, resourceDirectory doit être ajouté dans la configuration du plugin Maven Android.

Par exemple:

<resourceDirectory>${project.basedir}/res-customer1</resourceDirectory> <resourceDirectory>${project.basedir}/res-customer2</resourceDirectory>

etc ...

+0

Est-il possible d'avoir des répertoires multi-ressources et assets qui seront automatiquement fusionnés comme dans Gradle? – Blackhex

+0

C'est! Voir ma réponse à cette question. – Blackhex

Questions connexes