TLDR: Cách chuyển bản đồ proguard sang javac để biên dịch với thư viện bị che khuất?Chạy Proguard trên dự án đa mô-đun là "một phần"
Đó là dài, nhưng tôi không thấy làm thế nào để làm cho nó ngắn hơn:
Bối cảnh: Tôi có cài đặt sản phẩm sau:
Android Studio dự án - Thư viện mô-đun - (sub) module Core - (phụ) mô-đun A - (phụ) mô-đun B - (phụ) mô-đun C - Mô-đun ứng dụng mẫu - ... Các mô-đun khác
Mỗi lớp con của thư viện A, B, C tham chiếu lớp trong lõi, nhưng A, B, C độc lập với nhau. Tương tự về mặt khái niệm với Dịch vụ Play nơi người dùng chỉ có thể có mã và mô-đun phụ bắt buộc. Mỗi submodules thư viện có API bên ngoài nhưng cũng có nhiều lớp bên trong Mục đích là để có thể phân phối Core, A, B, C dưới dạng aar-s độc lập.
Mục tiêu: làm xáo trộn tất cả các mô-đun cùng nhau chỉ để lại các API công khai được phơi bày nhưng đóng gói và phân phối chúng một cách riêng biệt ở dạng bị tối ưu hóa/tối ưu hóa.
Vấn đề: Tôi không thấy cách sử dụng nó với cấu hình đơn giản. Tùy chỉnh xây dựng hệ thống là cần thiết ở đây, Trừ khi có một giải pháp được biết đến?
Điều cần thiết ở đây là:
- Java Biên dịch tất cả các tiểu mô đun cùng
- Proguard-xáo trộn chúng lại với nhau
- Chạy tất cả các phần còn lại của quá trình xây dựng riêng
Quy trình xây dựng thông thường ở đâu cho mỗi mô-đun là: - Biên dịch -> làm mọi thứ bao gồm. obfuscation -> gói
Thiết lập chuyển tiếp thẳng không thành công khi biên dịch mô-đun con đầu tiên sau Lõi. Nếu nó chỉ có thể vượt qua Proguard mapping.txt như là một đầu vào cho trình biên dịch Java ... Nhưng tôi không thể tìm thấy một tùy chọn như vậy. Ý tưởng nào?
Xin cảm ơn !!!
sẽ không obfuscation áp dụng cho mỗi mô-đun tại thời gian biên dịch do đó làm cho mọi tầng lớp obfuscated cho module con? – Inverce
Nếu bạn muốn mô-đun của bạn bị xáo trộn, bạn phải thêm chỉ thị bảo vệ cho mỗi mô-đun để giữ tất cả các lớp công khai: -giữ lớp công khai * {public protected *; } – Venator85