在Android的日常开发中,我们免不了要封装自己的类库,以便在不同的项目中使用,封装成类库,确实是非常的方便,但是随着项目的增多,每次做新的项目的时候,我们都需要将类库重新拷贝一份到新的项目中,这样就导致一个问题,一旦发现类库中有问题,那么我们就需要将其他项目中引用该类库的地方全部做一下更改,这就要花费很多的时间了,而且非常的不易维护,因此就需要像使用诸如RxJava这样的第三方库的方式来使用我们的自己类库。
该文章分两个部分来记录如何实现在GitHub上维护我们自己库以及在项目中引用。
1、使用Git从GitHub上拉取工程,同时可以将更新推送GitHub上。
2、如何将GitHub上的类库项目做成我们项目可以引用的公共类库。
下面开始进入正题。
1、使用Git从GitHub上拉取工程,同时可以将更新推送GitHub上。
1.1、使用Git将类库从GitHub上拉取下来,打开CMD,定位到需要放置项目的文件夹位置,使用如下命令将远程代码拉取到本地文件夹中,以便于维护查看源码和维护。
E:\Projects\CodeRoot>git clone https://github.com/lao-zhao/winsth-common.git
获取完成之后,结果显示如下:
Cloning into 'winsth-common'...
remote: Enumerating objects: 164, done.
remote: Counting objects: 100% (164/164), done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 164 (delta 9), reused 161 (delta 8), pack-reused 0 eceiving objects: 97% (160/164), 876.00 KiB | 38.00 KiB/s
Receiving objects: 100% (164/164), 880.57 KiB | 8.00 KiB/s, done.
Resolving deltas: 100% (9/9), done.
1.2、定位到获取的项目文件夹下面,使用git status命令,查看当前仓库的状态,显示结果如下。
E:\Projects\CodeRoot>cd winsth-common
E:\Projects\CodeRoot\winsth-common>git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
1.3、同样在在项目仓库目录,使用git remote -v,查看远程仓库版本的相关信息,显示结果如下。
E:\Projects\CodeRoot\winsth-common>git remote -v
origin https://github.com/lao-zhao/winsth-common.git (fetch)
origin https://github.com/lao-zhao/winsth-common.git (push)
1.4、我们先在当前库中增加一个android.jpg的图片文件,然后推送到远程仓库中。
1.4.1、首先需要配置GitHub账户信息:通过命令git config user.email "Your email"和git config user.name "Your name"配置登录帐号和仓库名称,然后再通过git config --list命令查看我们配置的信息是否成功,配置成功以后执行1.4.2操作。
1.4.2、将新增的图片添加到本地仓库:通过命令git add .或者git add * 将所有新增的文件添加到暂存区,再通过命令git commit -m "备注信息",将所有的改动文件提交到本地仓库。
1.4.3、将本地仓库改动的文件推送到远程仓库:通过命令git pull先更新远程仓库的改动,更新完成之后,再通过命令git push origin master推送到远程仓库,此处需要输入你访问GitHub帐号的密码,输入完成密码以后,就可以推送成功了!
最终操作结果如下所示。
E:\Projects\CodeRoot\winsth-common>git config user.email "xxxx.xxxx@qq.com"
E:\Projects\CodeRoot\winsth-common>git config user.name "lao-zhao"
E:\Projects\CodeRoot\winsth-common>git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://github.com/lao-zhao/winsth-common.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.email=xxxx.xxxx@qq.com
user.name=lao-zhao
E:\Projects\CodeRoot\winsth-common>git add .
E:\Projects\CodeRoot\winsth-common>git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: android.jpg
E:\Projects\CodeRoot\winsth-common>git commit -m "增加一张图片文件"
[master ed9bce6] 增加一张图片文件
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 android.jpg
E:\Projects\CodeRoot\winsth-common>git push origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 9.96 KiB | 9.96 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/lao-zhao/winsth-common.git
8b90ec8..ed9bce6 master -> master
1.5、我们修改其中的README.md文件,然后提交到远程库中。
1.5.1、通过git status命令,查看更改的文件。
1.5.2、通过git add .或者git add *命令添加改动文件到暂存区。
1.5.3、通过git commit -m "备注信息"将改动添加到本地仓库。
1.5.4、通过git push origin master命令,将本地仓库修改的文件推送到远程仓库。如果远程仓库有多个人进行维护,需要先通过命令git pull进行更新,然后才能够提交。
E:\Projects\CodeRoot\winsth-common>git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
E:\Projects\CodeRoot\winsth-common>git add .
E:\Projects\CodeRoot\winsth-common>git commit -m "完成说明文件"
[master 6302a99] 完成说明文件
1 file changed, 3 insertions(+), 1 deletion(-)
E:\Projects\CodeRoot\winsth-common>git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 450 bytes | 450.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/lao-zhao/winsth-common.git
ed9bce6..6302a99 master -> master
1.6、查看已经添加或者更新的文件信息。
2、如何将GitHub上的类库项目做成我们项目可以引用的公共类库。
2.1、将私有的类库进行发布,如下图在项目右侧找到Releases,点击进去,进入到下一个界面。
2.2、填写版本信息:如下图,填入版本号、类库简介以及类库描述,点击发布即可生成相应版本的类库,为以后的引用做准备。
2.3、确认以后会到项目的根目录,在右侧的Releases下面就可以看到发布的版本信息了。因为我之前已经发布了,因此可以参考2.1的图片。
2.4、版本发布之后,还需要到JitPack网站去备案,我们使用GitHub的账户,登录HitPack网站(https://jitpack.io/),登录进去以后,进行如下如图的操作。
查询自己的类库,然后点击按钮“Get it”,即可完成公共类库的发布,同时可以看到如下图的类库引用方法。
以上就是从GitHub上下载和上传代码,并生成公共类库的过程。如果不足之处,请多度指正。