2012-03-14 16 views
6

Mavenized Android uygulamasına sahibim ve müşteri derleme süresinde destek istemektedir. ÖrneğinMaven derleme profilleri ile Android uygulamasını çalma

: mvn temiz -P Geliştirici, mvn temiz -P Customer1 yüklemek yüklemek mvn temiz yüklemek -P Customer2 başka deyişle

, farklı müşteri görüntüler, farklı dizeleri arasında biraz farklı bir dizi ihtiyacı (appName, copyright, vb) ve ayrıca, düzenlerdeki öğelerin bazılarının gizlenmesi veya gösterilmesi (Geliştirici profili), yani farklı düzenler de olmalıdır.

İlk düşüncem res-customer1, res-customer2 gibi standart res dizinine paralel olarak klasörlere sahip olmak ve pom.xml dosyasındaki profil tanımındaki takası yapmak, ayrıca res yeniden adlandırmaktı, ancak iş. Her zaman özgün res klasörünü yapıya alıyorum ve bu durumda, hatalar çoğalır.

Bu, takas işleminin yeniden gerçekleştirilmesinin gerektiği anlamına mı geliyor? Android maven eklentisinin yapılandırmasında resourceDirectory öğesini belirtmedim.

Çok fazla uğraştım ama şu ana kadar aynı sorunu olan kimseyi bulamadım. Nasıl çözeceksin? Bunun için genel bir model var mı? yorkw gelen cevap dayanarak önceden

+1

aslında denediniz spec: farklı, bu büyük blog yazısı takip edebilirsiniz Her profilde android maven yapılandırmasında ify resourceDirectory? örneğin $ {project.basedir}/res-custom1. Bu beklediğiniz gibi çalışmalıdır. – yorkw

+0

Üzerinde çalışıyorum, haklısınız gibi görünüyor dostum. Kesin bir cevapla geri geleceğim, ama çok teşekkürler. – MartinC

+0

Tamam, işe yarıyor, benim günümü yaptın, yorkw :) Çok teşekkür ederim. – MartinC

cevap

1

farklı buid profilleri için farklı öğeleri veya kaynaklarını kullanmak istiyorsanız ve hatta Her yapı birden böyle dizinleri birleştirmek istiyorsanız

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

+0

Teşekkürler, bir göz atacağım – MartinC

+0

@Blackhex Link artık geçerli değil: Uyarı! Bu alan adı için alan eşleme güncellemesi bulunamadı. Lütfen giriş yapın ve bu alanı kullanmak için blogunuzun Etki Alanı Yükseltmeleri sayfasına gidin. – NightSkyDev

+0

Link güncellendi, bildirim için teşekkürler. – Blackhex

6

yılında

Çok teşekkürler, bu çözüm benim için çalışıyor: Her profil için

, resourceDirectory android maven plugin yapılandırmasına içine eklenmesi gerekir.

Örneğin

:

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

vs ...

+0

Otomatik olarak Gradle'da birleştirilecek olan ortak kaynak ve varlık dizinlerine sahip olmak mümkün mü? – Blackhex

+0

Oldu! Bu soruya cevabımı görün. – Blackhex