在開發中,常常會使用第三方庫,通常是經過maven或gradle的方式引用。很方便,整個引用過程也就幾行配置代碼(gradle只用一行)。java
參照https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en 【翻譯在此】
這裏已經很詳細了,接下來是實際操做過程當中應注意的地方:android
一、在Mac終端中,gradle的相關命令應 ./gradlew xxx
這樣寫,如下都默認在Mac中git
二、在運行./gradew install
時,會報github
Caused by: java.lang.NoClassDefFoundError: org/gradle/api/publication/maven/internal/DefaultMavenFactoryapi
當使用的Gradle版本是2.4以上,Android插件版本是1.3.0以上的時候就會出現這個問題,這時候咱們需在project的 build.gradle
文件中的插件版本添加一行
classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.3’
maven
三、在運行./gradlew bintrayUpload
時,報gradle
What went wrong:
Execution failed for task ':library:bintrayUpload'.
Could not create package 'sujian27@163.com/maven/simplify': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]ui
這是local.properites
中的bintray.user
配置錯誤致使的。在註冊bintray時,直接用github的帳號註冊的,這時候bintray.user應爲主頁顯示的那個名稱,而不是郵箱。spa
四、在運行./gradlew bintrayUpload
時,報插件
What went wrong:
Execution failed for task ':library:bintrayUpload'.
Could not upload to 'https://api.bintray.com/content/timesfire/maven/simplify/0.1.0/com/github/timesfire/library/0.1.0/library-0.1.0.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'com/github/timesfire/library/0.1.0/library-0.1.0.pom']
這個時候咱們的庫已經上傳到bintray上了,在對應的maven目錄下也有對應的tag生成,可是不能正常引用,這是由於須要上傳的庫工程對應的module名稱和咱們配置的不一致,默認的庫module名稱是library,只需重命名爲咱們配置的名稱便可,我這裏是重命名爲simplify。讓後先將bintray上已經生成的TAG刪除,從新運行上傳命令便可。