如何参与一个开源项目(多图)

2020-08-31 17:30:29 浏览数 (1)

摘要:作为一个 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 修改内容是否正确。

添加描述与确认提交。

等待原作者的确认。

确认通过,第一次开源项目支持结束。


小结

参与开源项目的第一小步,已经稳了。

今年是特殊的一年。因为疫情的关系,有的大学取消了技术专业应届生的企业实习。所以网络远程模式下的参与开源项目,即安全又能增加应届生简历上的亮点。

0 人点赞