创建bitbucket的私有maven仓库,把aar (library)上传到bitbucket的maven仓库
转载请标注原文地址:http://blog.csdn.net/lsyz0021/article/details/52065404
当我们使用android studio的开发的时候,我们可以很方面的使用compile " "命令很方便的使用别人的第三方aar库
比如我们引用okhttp的时候就可以在gradle中:
dependencies { compile 'com.squareup.okhttp3:okhttp:3.3.1' }
感觉好高大上,今天我们就来实现自己的library在gradle用compile引用,就以bitbucket的仓库为例,当然github也可以,这里就不讲了,看完这篇文章可以试试github。
1、首先我们创建一个project,里面包含一个toolslibrary的库和一个app的module,让app依赖toolslibrary。
app依赖ToolsLibrary
我们在toolslibrary里写了一个Toast的工具类来测试效果,然后在app里调用它
2、如果你的本地没有ssh key需要先配置,不然会失败,配置的方式请参考这篇博客:
Windows 7下Git SSH 创建Key的步骤:http://blog.csdn.net/lsyz0021/article/details/52064829
3、创建bitbucket的maven仓库,我们这一步骤的目的:
(1)创建一个maven仓库,
(2)主分支为release
(3)上传一个“README.md”的说明文件到该仓库
你不一定非要使用下面的步骤,你可以用自己的方式,但是你必须满足上面的这三个条件,否则会失败。
3.1 、我们在bitbucket中创建一个bitbucket_maven仓库
3.2 、clone到本地,提示是一个空仓库
3.3 、进入bitbucket_maven这文件夹
cd bitbucket_maven
3.4、新建一个md文件,内容随便写,命名为“README.md”,必须是这个名字否则会失败。复制到bitbucket_maven文件夹下,
然后git添加README.md文件
git add README.md
3.5、 commit ,这一步比较麻烦,如果你使用过linux下的vi或vim会很感觉简单
git commit
输入完命令后可能进入了一个你不会操作的界面,但不要着急,仔细看下面这段话。
1、首先你按下 回车键 或者 “i”
就进入了编辑状态,
2、然后用键盘方向键将光标移到最下面,随便输入字母,我这里输入 init ,
3、此时按下 “Esc” 键,然后再按住 “shift”+“冒号”键(L键右边),你会发现在左下方有个“:”,
4、然后再输入 “w”、“q” 两个字母,表示保存退出的意思。
不会那就仔细看截图
3.6 、新建一个release分支
git branch releases
3.7、push到仓库
git push origin releases
3.8 、进入bitbucket可以看到我们上传的README.md文件
3.9 、如果你是其他方式完成的此步骤,你必须保证主分支是release,这里我们可以查看设置一下
4、实现功能
我们使用了GItAsMaven这个工具https://github.com/lsyz0021/GitAsMaven
可以在你的toolslibrary中的build.gradle中添加下面的命令来引用,也可以直接将文件复制到toolslibrary根目录下再引用它,这里我选用的后者。
apply from: ‘https://raw.githubusercontent.com/JeroenMols/GitAsMaven/master/publish-bitbucket.gradle‘
4.1、直接clone下来将publish-bitbucket.gradle文件复制到了toolslibrary根目录,在build.gradle引用他
apply from: ‘publish-bitbucket.gradle‘
4.2、在toolslibrary的根目录创建gradle.properties文件,复制下面的文件,粘贴保存。这一步一定要仔细,不然很容易失败,
注意:等号后面不能有空格
<pre name="code" class="java">ARTIFACT_PACKAGE=<包名>
ARTIFACT_NAME=<librar名字>
ARTIFACT_VERSION=<版本号>ARTIFACT_PACKAGING=aarCOMPANY=<账户名/组名>REPOSITORY_NAME=<仓库名>
我的配置
4.3 、复制下面的配置到你的project的gradle.properties文件内
USERNAME=<bitbucket账号> PASSWORD=<bitbucket密码>
5 、最后一步,执行运行命令
在terminal中输入下面的命令然后回车就开始执行(在第一次执行命令前,一定要先RebuildProject一次)
gradlew uploadArchives
很幸运一次就成功了
6 、问题总结
6.1 、看结果,虽然提示401 但是还是没问题,提示的错误是因为不支持中文的javadoc,后面我会给出解决方法
解决“编码GBK的不可映射字符”的错误,我们在publish-bitbucket.gradle修改如下
然后重新执行命令(注意:这里要再次执行必须修改版本号(ARTIFACT_VERSION=1.0.1),不然会失败)
gradlew uploadArchives
可以看到1.0.1的版本上传成功了,也没有报 “编码GBK的不可映射字符的错误”
bitbucket仓库的文件
6.2 、如果在上传你的library时还是失败,可以试试此方法。
7、测试引用的结果
这里我又新建了一个project,然后配置三个地方就可以了
7.1、设置账户和密码
7.2、设置依赖地址,在你新建的project的build.gradle中配置
maven { url "https://api.bitbucket.org/1.0/repositories/<code class="objectivec"><span class="hljs-string"></span></code>用户名或团队名/仓库名/raw/releases" credentials { username USERNAME password PASSWORD } }
7.3、引用依赖,最关键的一部了
引用格式
compile 'ARTIFACT_PACKAGE:ARTIFACT_NAME:ARTIFACT_VERSION' //这是引用的格式
compile '包名:library名:版本号'
7.4、调用ToastUtils这个类
可以看到可以调用了,说明成功了
参考文章:http://www.jianshu.com/p/72996bc89b7c#
参考文章:http://jeroenmols.com/blog/2016/02/05/wagongit/?utm_source=tuicool&utm_medium=referral