前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何参与一个开源项目(多图)

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

作者头像
FoamValue
修改2020-08-31 17:30:29
4520
修改2020-08-31 17:30:29
举报
文章被收录于专栏:FoamValue

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

添加描述与确认提交。

等待原作者的确认。

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


小结

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FoamValue 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL Community Server等等。如果问我为什么不用 MyEclipse、IEDA Ultimate、JDK 14、MySQL Enterprise Edition 这些更加优秀与商业化的工具呢?我的回答可以是一个字:穷。
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档