參考:發布Android依賴到 Jitpack
Jitpack官網
1.配置插件maven-publish
,并加入task
plugins {
id 'com.android.library'
id 'maven-publish'
}
task generateSourcesJar(type: Jar){
from android.sourceSets.main.java.srcDirs
classifier 'sources'
}
- 異常一:
Could not find method publications() for arguments
afterEvaluate{ publishing {} }
部分應該在android{}塊之外,并且在它自己的afterEvaluate {}
中
我們還需要在android
塊中添加一個publishing {}
部分,指定要發布的變體。
android {
publishing {
singleVariant("release")
}
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release // 表示發布 release(jitpack 都不會使用到)
groupId = 'com.smallcake.utils' // 這個是依賴庫的組 id
artifactId = 'SmallUtils' // 依賴庫的名稱(jitpack 都不會使用到)
version ="1.0.0" //當前版本依賴庫版本號,這個jitpack不會使用到,只是我們開發者自己查看
}
}
}
}
2.將代碼同步到 github
上,并創建一個 release 版本
- 異常一:
Github
上面點擊release
后沒有發現Create a new release按鈕
解決:等幾個小時刷新就有了
- 異常二:發布
Publish release
需要Choose a tag
我沒法創建tag
解決:原來是我太賽,點擊Choose a tag
后在輸入框中輸入你自己寫的tag,然后點擊Create new tag
3.去Jitpack發布
- 首先,復制當前項目地址,例如:
https://github.com/xiaoshubin/Utils
- 然后,進入https://jitpack.io/ ,把這段地址粘貼到輸入框中,并點擊Look up
image.png - 異常一:由于我不知道第二部
Create new tag
的tag
代表的版本號,所以我寫的utils,導致我第一個預覽版引入路徑是:
implementation 'com.github.xiaoshubin:Utils:utils'
哈哈,是不是很奇怪
改進:下次寫tag一定寫版本號
- 異常二:由于我的項目名稱是大寫,導致我的二級路徑是
Utils
,github直接修改名稱為小寫的utils
- 異常三:由于我修改了
Github
項目名稱為小寫的utils
,導致jitpack
一直無法更新版本,可以嘗試刪除老版本 - 異常四:
ERROR: No build artifacts found Expected artifacts in: $HOME/.m2/repository/SmallUtils/utils/unspecified
Jitpack打包異常,發現原來事我自己的一個文件里面引入了一個錯誤的文件路徑,我沒刪除。刪除即可
經過三天折騰,終于可以了,感覺比上傳到MavenCenter簡單
image.png