2012-03-14 35 views
6

Tôi đã có ứng dụng Android bị quấy rối và khách hàng muốn hỗ trợ cho việc tạo skin tại thời gian xây dựng.Ứng dụng Skinning Android với các cấu hình xây dựng Maven

Ví dụ: mvn clean install Developer -P, mvn clean install -P Customer1, mvn clean install -P Customer2

Nói cách khác, khách hàng khác nhau cần chút bộ hình ảnh khác nhau, chuỗi khác nhau (appName, bản quyền, vv) và cũng có thể, một số yếu tố trong bố cục phải được ẩn hoặc hiển thị (Hồ sơ nhà phát triển), do đó bố cục khác nhau quá. Ý tưởng đầu tiên của tôi là có các thư mục như res-customer1, res-customer2 song song với thư mục res chuẩn và thực hiện hoán đổi trong định nghĩa hồ sơ trong pom.xml, cũng đổi tên nó thành res, nhưng điều đó dường như không công việc. Tôi luôn luôn nhận được thư mục res gốc vào bản dựng và trong trường hợp này, các lỗi trùng lặp.

Điều này có nghĩa là việc hoán đổi sẽ diễn ra bên trong hồ sơ? Tôi đã không chỉ định resourceDirectory trong cấu hình của plugin maven android.

Tôi đã googling rất nhiều, nhưng cho đến nay, tôi đã không tìm thấy bất kỳ ai có cùng một vấn đề. Làm thế nào để giải quyết nó? Có mô hình chung nào cho điều đó không?

Nhiều cảm ơn trước

+1

Bạn đã thực sự thử đặc tả ify resourceDirectory trong cấu hình của maven android trong mỗi cấu hình? ví dụ $ {project.basedir}/res-custom1. Điều này sẽ hoạt động như bạn mong đợi. – yorkw

+0

Tôi đang làm việc với nó, có vẻ như bạn nói đúng, bạn tôi. Tôi sẽ trở lại với câu trả lời dứt khoát, nhưng rất nhiều người cảm ơn. – MartinC

+0

OK, nó hoạt động, bạn đã làm ngày của tôi, yorkw :) Cảm ơn bạn rất nhiều. – MartinC

Trả lời

1

Nếu bạn muốn sử dụng tài sản khác nhau hoặc các nguồn lực cho các cấu buid khác nhau và nếu bạn thậm chí muốn kết hợp nhiều thư mục ví dụ của từng xây dựng một cách khác, bạn có thể theo dõi bài đăng trên blog tuyệt vời này:

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

+0

Cảm ơn, tôi sẽ xem xét – MartinC

+0

@Blackhex Link dường như không còn hợp lệ: Cảnh báo! Không tìm thấy nâng cấp ánh xạ miền cho miền này. Vui lòng đăng nhập và truy cập trang Nâng cấp miền của blog để sử dụng miền này. – NightSkyDev

+0

Đã cập nhật liên kết, cảm ơn thông báo. – Blackhex

6

Dựa trên câu trả lời từ yorkw, giải pháp này làm việc cho tôi:

Đối với mỗi hồ sơ, resourceDirectory cần phải được thêm vào cấu hình của các plugin maven android.

Ví dụ:

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

vv ...

+0

Có thể có các thư mục tài nguyên và tài nguyên mutliple sẽ được tự động hợp nhất như trong Gradle không? – Blackhex

+0

Đó là! Xem câu trả lời của tôi cho câu hỏi này. – Blackhex

Các vấn đề liên quan