摘要:作为一个 Javaer 一直在享受开源带来的便利,却从未给开源提供任何福报。本周将围绕一个开源项目来讲诉,如何为开源添砖加瓦。
非常轻松容易参与开源项目的方式,如下图:「手动滑稽」
我作为一个 Javaer,日常使用的工具主要有 eclipse、IEDA CE、JDK 8、
MySQL Community Server等等。如果问我为什么不用 MyEclipse、IEDA Ultimate、JDK 14、MySQL Enterprise Edition 这些更加优秀与商业化的工具呢?我的回答可以是一个字:穷。
相比于更稳定、更强大的商业版工具,开源软件无疑是居家旅行必备之良品。虽然两者之间的差距好像 Mac 和 Linux,但是开源 & 免费是真的香。
准备工作
- JDK 1.8.0_211
- Maven 3.6.3
- IEDA CE
- Docker 19.03.8
- github 账号
以下内容适合于一年内工作经验 Javaer。。。
获取代码
打开开源项目地址:https://github.com/Snailclimb/guide-rpc-framework。
登陆自己的 github 账号,点击「Fork」按钮。
选中想要 Fork 的仓库位置。
回到自己账号,获取 clone url。
使用命令行拉取代码,并使用 Maven 命令初始化编译项目。
代码语言:javascript复制# git clone https://github.com/FoamValue/guide-rpc-framework.git
# cd guide-rpc-framework
# mvn -DskipTests clean install
IDEA CE
Maven 初始化编译通过后,使用 IDEA CE 打开项目工程。(注意不要同时进行,编译中打开 IDEA CE 可能会导致 Maven 重复下载依赖文件导致的异常等问题。)
zookeeper
提前安装好 Docker 之后,就可以使用命令行下载运行 zookeeper 镜像了。
代码语言:javascript复制# docker pull zookeeper:3.4.14
# docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14
关闭 zookeeper
代码语言:javascript复制# docker stop zookeeper
第二次运行 zookeeper
代码语言:javascript复制# docker start zookeeper
代码语言:javascript复制运行 NettyServerMain.java main 方法
代码语言:javascript复制运行 NettyClientMain main 方法
Merge 开源项目
距离上周末「Fork」项目已经一周过去了,以正常的项目进度来说。「FoamValue/guide-rpc-framework」相对于「Snailclimb/guide-rpc-framework」可能存在多个版本上的落后了。
作为开源项目贡献者、开源二开项目而言,原作者的新功能、亦或者是优化迭代,是非常香的。
毕竟很少有人会比原作者更懂这个项目/产品。
使用命令行查看本地项目的远程仓库
代码语言:javascript复制# git remote -v
origin https://github.com/FoamValue/guide-rpc-framework.git (fetch)
origin https://github.com/FoamValue/guide-rpc-framework.git (push)
使用命令行加入原作者仓库
代码语言:javascript复制# git remote add sport_meeting https://github.com/Snailclimb/guide-rpc-framework.git
# git remote -v
origin https://github.com/FoamValue/guide-rpc-framework.git (fetch)
origin https://github.com/FoamValue/guide-rpc-framework.git (push)
sport_meeting https://github.com/Snailclimb/guide-rpc-framework.git (fetch)
sport_meeting https://github.com/Snailclimb/guide-rpc-framework.git (push)
merge 原作者仓库代码「真香警告」
代码语言:javascript复制# git fetch sport_meeting master
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (1/1), 638 字节 | 638.00 KiB/s, 完成.
来自 https://github.com/Snailclimb/guide-rpc-framework
* branch master -> FETCH_HEAD
* [新分支] master -> sport_meeting/master
提交代码
作为一个 eclipse 老手,在使用 eclipse 编辑项目时发现 git 没有配置忽略 eclipse 项目文件的情况。
于是修改了 .gitignore 文件后做了第一次提交「支持开源」。
代码语言:javascript复制# git add .
# git commit -m "[N/A]update .gitignore file"
# git push origin master
打开「FoamValue/guide-rpc-framework」页面开始了第一次「New pull Request」操作。
检查仓库的指向,以及提交的 commit 信息是否正确。
检查 commit 修改内容是否正确。
添加描述与确认提交。
等待原作者的确认。
确认通过,第一次开源项目支持结束。
小结
参与开源项目的第一小步,已经稳了。
今年是特殊的一年。因为疫情的关系,有的大学取消了技术专业应届生的企业实习。所以网络远程模式下的参与开源项目,即安全又能增加应届生简历上的亮点。