Android创建属于自己的开源库
2016-10-18 20:40
260 查看
转自https://yongjhih.gitbooks.io/feed/content/openpackage_jitpack_jcenter_mavencentral.html#
引用套件
要把編譯好的 jar/aar 套件,上傳到套件管理中心,方便別人下載使用:dependencies { compile 'com.github.yongjhih:RetroFacebook:1.0.0' }
那麼你要就上到一個 maven 套件伺服器。目前知名的伺服器中心有三家:
mavenCentral
jcenter
jitpack
mavenCentral 發布套件
由 sonatype 組織所維護, 最早的一家。 必須要開源才能被收錄。最嚴苛的一家。申請方式,首先,你必須要有一個開源專案。
註冊 sonatype 帳號後,發 ticket ,在 ticket 內容寫你的開源網址,通常是 github repository 網址,如:https://github.com/yongjhih/RetroFacebook ,這樣你就會拿到
com.github.yongjhih的
group 。以後你都可以往這個群組裡面丟 jar/aar 。
如果是公司行號要申請,就必須在 ticket 內容寫明你是域名的擁有者,例如:
com.infstory,這樣你才能拿到
com.infstoryGroup。
mavenCentral 發布指南:
OSSRH
~/.gradle/gradle.properties 設定 mavenCentral 帳密與 gpg key
在你的專案安裝 https://github.com/chrisbanes/gradle-mvn-push
設定專案套件資訊 gradle.properties:
VERSION_NAME=0.9.2-SNAPSHOT VERSION_CODE=92 GROUP=com.github.chrisbanes.actionbarpulltorefresh POM_DESCRIPTION=A modern implementation of the pull-to-refresh for Android POM_URL=https://github.com/chrisbanes/ActionBar-PullToRefresh POM_SCM_URL=https://github.com/chrisbanes/ActionBar-PullToRefresh POM_SCM_CONNECTION=scm:git@github.com:chrisbanes/ActionBar-PullToRefresh.git POM_SCM_DEV_CONNECTION=scm:git@github.com:chrisbanes/ActionBar-PullToRefresh.git POM_LICENCE_NAME=The Apache Software License, Version 2.0 POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo POM_DEVELOPER_ID=chrisbanes POM_DEVELOPER_NAME=Chris Banes
上傳套件:
./gradlew uploadArchives
上傳後,會先進到 stage 暫存區,做掃描行為後,你進到網頁後台確定發布。不過通常半個到一個工作天才能夠真正進到 mavenCentral。
jcenter
由 bintray 公司所維護。原則上也是需要開源。jcenter 會鏡像 mavenCentral 。而目前 jcenter 是 android studio 預設的套件中心。加上目前由於網頁設計的比較便民,所以大多已經改由 jcenter 發布了。當然很多其他系統還是只有 mavenCentral 所以 jcenter 也提供同步到 mavenCentral ,不過你要給它 OSSRH 的帳密就是了,當然 jcenter 也表明不會儲存你的帳密。安裝 https://github.com/novoda/bintray-release
上傳套件:
./gradlew bintrayUpload
去 bintray.com 後台一鍵申請發布到 jcenter ,通常一天內就會審核通過。(未來這部份應該透過上傳程式就直接提出申請,這樣省事多了)
jitpack
大約是 2015 年初的時候成立的。最大的特點是,直接支援 github/bitbucket repository 。所以不用特別申請套件中心帳號。因為不是你去放套件,而是它自己來拉你的源碼來編譯 jar/aar。jitpack 引用套件
引用方 build.gradle:repositories { // ... maven { url "https://jitpack.io" } } dependencies { compile 'com.github.{user}:{repo}:{version}' }
jitpack 發布套件
因為是引用時編譯,不需要自己編譯上傳發布,只要安裝配置好基本 script 提交到 github repo ,就沒事了。在 module 內 build.gradle 加入:
buildscript { repositories { jcenter() } dependencies { // ... classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' } } apply plugin: 'com.github.dcendents.android-maven' apply from: 'android-javadoc.gradle'
以及新增 android-javadoc.gradle:
task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = 'sources' } task javadoc(type: Javadoc) { failOnError false source = android.sourceSets.main.java.sourceFiles classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar }
如果你引用的了太多 jitpack 上面的套件,會需要很長的時間等待 jitpack 的編譯時間。故筆者作為一個函式庫貢獻者,盡可能還是採取 jitpack 與 jcenter 並行。甚者,如有閒暇會讓 jcenter 同步到上游 mavenCentral 。
p.s. jitpack 未來或許營利除了私有套件之外,可能可以提供付費服務,如報表等。javadoc 生成塞廣告。結合 travis-ci, cycle-ci 。同步 mavenCentral/jcenter
相关文章推荐
- Android创建属于自己的开源库(JitPack.io)
- Android创建属于自己的开源库(JitPack.io)
- Android从零单排04_创建属于自己的AVD
- 面向开源的-创建属于自己的Node.JS项目-创建npm项目全教程
- 创建属于自己的私用android仓库
- 新手自定义控件,创建属于自己的下拉刷新(一)---Android,ListView实现IOS的弹性效果
- 【转载】08年开源10件大事 谷歌推Chrome和Android
- 创建 Android虚拟设备(AVD)
- 如何创建属于自己的GNU/Linux发行版?
- Android开发指南-用户界面-创建自定义组件
- Google手机OS大战:Android挟免费开源优势被看好
- 利用java的开源组件JExcel创建无差异的Excel文件,并且导入到.net项目中去.
- 创建Android Virtual Device
- 创建androidMenu菜单
- Android: 如何创建AVD以及选择合适target类型
- Android开发指南-用户界面-创建菜单
- 如何在CodePlex 创建开源项目
- Android开源手机平台揭秘和未来发展
- Android开源了
- 一个创建验证码图片的开源组件