android 项目部署,Android发布项目到JCenter
JCenter是什么
大家應該都用過各種各樣的Github上的第三方開源組件。類似這種效果的
compile 'wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.5'
我們會比較好奇Android Studio 是從哪里得到這個類庫的?
Android Studio是從build.gradle里面定義的Maven倉庫服務器上下載library的。Apache Maven是Apache開發的一個工具,提供了用于貢獻library的文件服務器。但是由于maven倉庫對開發人員不友好(原因在此),因此Android Studio 團隊把默認倉庫換成了JCenter。JCenter是一個由bintray.com維護的Maven倉庫。我們在項目的build.gradle 文件中如下定義倉庫,就能使用jcenter了。
allprojects {
repositories {
//mavenCentral()
jcenter()
}
}
為了更好的描述他們之間的關系,以及怎么發布一個項目到JCenter上,我下面用一個例子進行演示一下。
演示:發布項目到JCenter
第一步:準備工作
前言:本機環境
MAC OS 10.10.5
Android Studio 2.0
新建一個Android Studio Project
Application Name -> DemoForJCenter
根據 Application Name 會自動生成 Package Name 為 wang.yuchao.demoforjcenter
添加一個Android Library 類型的 Model
Model Name -> DemoForJCenterLibraryModel
Application/Library name -> DemoForJCenterLibrary
根據 Application/Library name 可以自動生成 Model Package Name 為 wang.yuchao.demoforjcenterlibrary
我們在此 Model 下面新建一個類 ToastUtil.java 用來測試
package wang.yuchao.demoforjcenterlibrary;
import android.content.Context;
import android.widget.Toast;
public class ToastUtil {
public static void show(Context context, String message) {
Toast.makeText(context, "DemoForJCenterLibrary:" + message, Toast.LENGTH_SHORT).show();
}
}
第二步:網站配置
Push 工程到 Github
方式一:點擊 maven -> Import GitHub repositories 即可把Github的項目導入。(導入后Bintray生成的項目名默認是Github的項目名)
方式二:點擊 maven -> Add New Package 后,根據提示寫入各種信息后Create Package。(Version control 是必填項)
注意:為了詳細的演示與講解,我們使用上述方式二進行配置,并且為了區分Bintray上的Name跟Github默認的項目名,Bintray Name我們設置的不是Github默認的DemoForJCenter,而使用的是 DemoForJCenterName 。如下圖。(但是建議:設置為Github默認的)
截圖
第三步:本地配置
1. 打開本地Project的local.properties,最后添加
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY
YOUR_BINTRAY_USERNAME是你在 https://bintray.com/ 的用戶名
YOUR_BINTRAY_API_KEY是你在 https://bintray.com/ 的API_KEY(點擊右上角用戶名->your profile->edit ->Api Key)
2. 打開本地Project的gradel文件,dependencies節點下添加一些插件
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
3. 打開本地要上傳的Model(即DemoForJCenterLibraryModel)下的gradle文件,添加如下代碼到最后
apply plugin: 'com.android.library'
ext {
bintrayRepo = 'maven'
bintrayName = 'DemoForJCenterName'
publishedGroupId = 'wang.yuchao.demoforjcenterlibrary'
libraryName = 'DemoForJCenterLibrary'
artifact = 'DemoForJCenterLibraryModel'
libraryDescription = 'This library is test for DemoForJCenter'
siteUrl = 'https://github.com/yuchao-wang/DemoForJCenter'
gitUrl = 'https://github.com/yuchao-wang/DemoForJCenter.git'
libraryVersion = '1.2.3'
developerId = 'wangyuchao'
developerName = 'yuchao-wang'
developerEmail = '1154786190@qq.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
3.1 參數說明
參數
說明
publishedGroupId
Model Package Name
libraryName
Model Application/Library name(沒啥用)
artifact
Model 名
libraryVersion
Model版本號
3.2 使用說明
compile 'publishedGroupId:artifact:libraryVersion'
第四步:發布項目到Maven及JCenter
1. 執行
./gradlew install
2. 執行
gradlew bintrayUpload
到目前為止,你已經成功地把類庫文件上傳到bintray上,接下來就是同步到jcenter上了。
4. 點擊 Add to JCenter 等待JCenter審核即可。
測試一下
在等待審核的過程中,你可以先修改Project下的gradle文件進行測試。如果審核通過了以后,下面的maven節點也就可以注釋掉了。
allprojects {
repositories {
maven {
// your bintray maven address . you can find it on
url 'https://dl.bintray.com/yuchao-wang/maven'
}
jcenter()
}
}
app model 下的gradle文件引入
compile 'wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.3'
番外篇
1. 踩過的坑
如果上傳的過程中出現
Could not upload to 'https://xxxxxxx.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 'xxxxxxx.pom']
是因為module的名字和Model下gradle文件配置的artifact不一致導致的
2. 刪除JCenter項目
Edit Your Profile -> Repositories ->
參考
總結
以上是生活随笔為你收集整理的android 项目部署,Android发布项目到JCenter的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 银行卡销户卡收回吗?
- 下一篇: 期货开户时间
