Xuất bản Thư viện mã nguồn mở Android với JCenter

Tram Ho

1. Overview

Đối với các package (gói) Android, có một số cách xuất bản thư viện mã nguồn mở, chẳng hạn như jitpack, maven và jcenter.

Dễ nhất là jitpack.io

Chỉ cần sao chép URL git repo của bạn và dán nó, và sau một vài cú nhấp chuột, bạn đã hoàn tất! Thế nhưng cũng như mọi thứ khác trong cuộc sống, bạn phải hy sinh một vài thứ để làm cho nó trở nên thật dễ dàng.
Chúng ta cần phải thêm nó theo cách thủ công vào build.gradle (level Project) như được hiển thị bên dưới và chúng ta cũng không thể có toàn quyền kiểm soát phần mềm đã xuất bản của mình và cách nó được phân phối ra cộng đồng lập trình như chúng ta làm trong JCenter.

Nếu bạn muốn tìm hiểu kho lưu trữ từ xa (remote repository) là gì và cách nó hoạt động, bạn có thể kiểm tra tại đây.

Bạn sẽ thắc mắc là tại sao chúng ta lại chọn JCenter mà không phải là Jitpack?

Chia sẻ thư viện trong JCenter khó hơn một chút so với Jitpack nhưng nó đi kèm với một số lợi thế lớn. Là một trong những trung tâm Maven phổ biến nhất, nó giới thiệu package của bạn cho một lượng lớn khán giả (audience), tuy nhiên, bạn vẫn có toàn quyền sở hữu và có thể kiểm soát cách package của bạn phát triển. Về cơ bản, bạn tải package của mình lên một trong các kho lưu trữ Maven công khai của mình và yêu cầu đưa nó vào JCenter. Sau khi được nhóm Bintray chấp thuận, package của bạn sẽ có thể tìm kiếm được trên JCenter và có sẵn miễn phí để tải xuống.

2. Publish your library

  1. Đầu tiên, chúng ta sẽ cần phải publish project của mình trên Github.
  2. Sau đó, chúng ta cần tạo một tài khoản trên BintrayOss.. Nó phải là oss (open source plan)
  3. Tại trang chính, click “Add New Repository”.

  1. Điền đầy đủ các thông tin bắt buộc
  • Name: Tên thư viện
  • Type: Kiểu Library : nên đặt là Maven
  • Licenses: Library licenses
  • Description: mô tả về Library, hãy chắc chắn rằng đây là một lời giải thích rõ ràng, rành mạch nhé.

  1. Chúng ta đã tạo thư viện. Bây giờ chúng ta nên tạo package (gói) cho thư viện. Nhấp vào “Add New Package”

  1. Lại điền đầy đủ các thông tin bắt buộc:
  • Name: Tên gói
  • Description: mô tả
  • Licenses: Package licenses
  • Maturity: Mô tả trạng thái phát triển của thư viện. Nếu đó là thư viện sẵn sàng sản xuất, bạn sẽ chọn “Official”, nếu không, bạn có thể chọn bất kỳ tùy chọn nào bạn cảm thấy gần với trạng thái của dự án nhất.
  • Website: Git repo url of project.
  • Issue tracker: Issues url hoặc git project repo
  • Version control: Git repo with .git postfix

Sau đó click “Create Package”.

  1. Go to package page sau đó click “New Version”.

  1. Set version của library và sau đó click “Create Version”

Đây là phần cuối của thiết lập Bintray. Bây giờ chúng ta sẽ thiết lập dự án của mình.

  1. Đầu tiên, chúng ta nên thêm classpathes của Bintray và Maven vào gradle dependencies (level Project):

  1. Sau đó, trong tệp thư viện build.gradle, chúng ta nên thêm một số trường cần thiết. Các trường này cần các tập lệnh tạo sẵn để tải thư viện lên bintray một cách dễ dàng.

Đừng quên thêm “apply from x.gradle” vào cuối build.gradle của mô-đun thư viện.

publish.gradle là một tệp mà chúng ta sẽ tạo ở bước tiếp theo. Bây giờ, chỉ cần thêm đoạn mã bên dưới vào build.gradle của mô-đun của bạn.

Sau đó, chúng ta cần tạo tệp gradle mới trong mô-đun thư viện và dán vào bên dưới ý chính để giúp chúng ta tải lên bintray một cách dễ dàng.

Ví dụ: publish.gradle.

Cuối cùng, chúng ta cần thêm tên người dùng bintray và API Key vào tệp local.properties như hình dưới đây:

Và bây giờ, chúng ta chỉ cần chạy command line dưới đây:

  • ./gradlew install
  • ./gradlew bintrayUpload

TRƯỜNG HỢP BUILD THẤT BẠI
Thỉnh thoảng nó thất bại vì Javadoc. Đầu tiên bạn nên kiểm tra xem mọi thứ có chính xác không. Các ký tự không phải ascii cũng không build được. Nếu bạn chắc chắn rằng mọi thứ đều chính xác, thì bạn có thể disable Javadoc. Chỉ cần sao chép-dán phạm vi này vào thư viện build.gradle.
Bạn có thể xem tại đây để tìm hiểu về Javadoc

IMPORTANT NOTE for 401 Unauthorized;
Nếu bạn đang xuất bản thư viện của mình dưới một tổ chức (organisation),

Thứ nhất: Bạn nên sử dụng tên người dùng và khóa api của chủ sở hữu tổ chức

Thứ hai: Bạn nên đặt userOrg = ‘your_organisation_name’ trong publish.gradle

Thứ ba: Hoặc để có trường hợp sử dụng tốt hơn, hãy kiểm tra ý chính bên dưới

This is in the library build.gradle

Sau khi gọi hai command line trên theo thứ tự, (nếu mọi thứ đều đúng, nó sẽ thông báo “Build Successful”). Sau đó, chúng ta sẽ có thể xem phiên bản mới nhất trong bảng điều khiển (dashboard);

Sau khi click vào last version, chúng ta sẽ thấy “Version Publication Date” và đoạn mã “<dependency />”.

Cuối cùng, chúng ta sẽ click vào nút “Add to JCenter”, viết mô tả thư viện và chờ phê duyệt.

Sau khi được phê duyệt, nó sẽ được implemented giống như:

Vậy là xong rồi.

Thanks for reading.

Nguồn tham khảo:

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo