Thư viện Publication
Theo mặc định thư viện chỉ xuất bản biến thể phát hành. Biến thể này sẽ được sử dụng bởi tất cả các dự án tham chiếu đến thư viện, bất kể biến thể nào họ tự xây dựng là . Đây là giới hạn tạm thời do Các giới hạn về điểm số mà chúng tôi đang nỗ lực xóa bỏ.
Bạn thể kiểm soát biến thể được xuất bản với
android { defaultPublishConfig "debug" }
Lưu ý rằng tên cấu hình xuất bản tham chiếu này tên biến đầy đủ. Việc phát hành và gỡ lỗi chỉ áp dụng khi không có các hương vị . Nếu bạn muốn thay đổi mặc định biến thể công bố trong khi sử dụng hương vị, bạn sẽ viết:
android {defaultPublishConfig "flavor1Debug" }
Nó cũng có thể công bố tất cả các biến thể của thư viện. Chúng tôi đang lập kế hoạch cho phép điều này trong khi sử dụng dự án bình thường (như được hiển thị ở trên), nhưng hiện tại không thể thực hiện được cho các hạn chế trong Gradle (chúng tôi cũng đang cố gắng khắc phục). Xuất bản của tất cả các biến thể không được bật theo mặc định. Để giúp họ:
android {publishNonDefault true }
Điều quan trọng là nhận ra rằng xuất bản nhiều biến thể có nghĩa xuất bản nhiều file aar, thay vì một aar đơn chứa nhiều biến thể. Mỗi bao bì aar chứa một biến thể duy nhất. Xuất bản một biến thể có nghĩa là làm cho aar này có sẵn như là một đầu ra tạo phẩm của dự án Gradle. Điều này sau đó có thể được sử dụng khi xuất bản tới kho lưu trữ maven hoặc khi một dự án khác tạo phụ thuộc vào dự án thư viện..
Gradle có một khái niệm về mặc định" tạo tác này là một trong đó là sử dụng khi viết:
compile project(':libraries:lib2')
Để tạo ra một sự phụ thuộc vào một tạo tác xuất bản, bạn cần phải xác định cái nào để sử dụng:
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
Chú ý:. Lưu ý rằng cấu hình được công bố là một biến thể đầy đủ, kể cả loại xây dựng, và cần phải được tham chiếu như vậy Imp ortant: Khi bật tính năng xuất bản không mặc định, plugin xuất bản Maven sẽ xuất bản các biến thể bổ sung này dưới dạng gói thêm (với trình phân loại). Điều này có nghĩa rằng đây không thực sự là tương thích với việc xuất bản lên kho lưu trữ maven. Bạn nên hoặc là xuất bản một biến thể duy nhất cho một kho lưu trữ HOẶC bật tất cả cấu hình xuất bản cho các phụ thuộc giữa các dự án.
Điều này không hoạt động. – dragostis
Ví dụ này có phù hợp với bạn trên '0.2.1' không? Với cú pháp thích hợp, tất nhiên. 'android.productFlavors' trong thư viện và' compile project (': mylibrary') 'trong dự án chính. – dragostis
Cú pháp là chính xác và nó hoạt động tốt với một mô-đun ứng dụng. Tôi không biết làm thế nào nó có thể làm việc với một thư viện. Theo tôi, bạn nên di chuyển hương vị trong mô-đun chính (tôi chưa bao giờ thấy mùi vị bên trong thư viện) –