【Git之窗】(二)记我为“Arquillian”开源框架贡献一次源码的经历

2024-08-26 21:18

本文主要是介绍【Git之窗】(二)记我为“Arquillian”开源框架贡献一次源码的经历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    在上一家公司工作的时候,组长说,以后找工作简历上写,我为“xxx”开源项目贡献过源码,那你就NB了,恰巧今天我就干了这样一件事情。


一、 起源:

    前几天我的好朋友文彬说研究下EJB的单元测试吧,因为“EJB3Unit”对我们itoo的"vo"支持的不是很好,于是给了我一些资料,以这个“Arquillian”框架为主,“http://arquillian.org/invasion/”(这是官网,朋友们可以去逛逛),在使用Jobss集成的Forge工具创建空的Maven项目时,问题出来了,如图:

          创建了一个名为“Arquillian-tutorialabc”的空的Maven项目,并且为该项目添加了“jboss-javaee-6.0”的依赖,可是当你打开这个项目的pom文件之后,发现有问题:

<dependencies><dependency><groupId>org.jboss.spec</groupId><artifactId>jboss-javaee-6.0</artifactId><type>provided</type><scope>pom</scope></dependency>
</dependencies>
<dependencyManagement>
<dependencies><dependency><groupId>org.jboss.spec</groupId><artifactId>jboss-javaee-6.0</artifactId><version>1.0.0.Final</version><type>provided</type><scope>pom</scope></dependency>
</dependencies>
</dependencyManagement>
    前段时间看了浩哥推荐的《Maven实战》,细心的你会发现<type>和<scope>中的内容貌似颠倒了,当然,这里非常感谢浩哥,几天前我最开始敲Demo的时候,死活以为是没有引用到jar包,这个标签内容混乱的bug还是被浩哥发现了,以为是自己粗心,后来通过Forge命令新建别的Maven项目的时候,发现同样有这样的问题,如图,这是官网的教程:

           于是乎,我怀疑官网的这条命令打错了,自己又新建了一个Maven空项目,添加“jboss-javaee”依赖的时候,将“Final:provided:pom”修改成"Final:pom:provided",结果生成的pom文件没有任何问题!!!

    我的天那!!!我竟然发现了“Arquillian”官方的bug!!!



二、动手

    紧接着,另一点让我兴奋的是,我发现“Arquillian”竟然是开源的,而且代码全部托管在Github上面,我的天哪!!!上天给我一个这样的机会,让我为这个开源框架做一下贡献啊,干吧!!!

    之后我在GitHub上找到了“Arquillian”的源码,如图:


   这里点击右上角的fork按钮,先将这个项目fork到自己的GitHub仓库中,如图(右下角那个arquillian.github.com):


   简直爽到不行,下面开始在我自己fork的这个"arquillian"中找到对应的文件,由于问题在于使用“forge”为建立的空项目添加“java-ee”依赖时命令错了,我找到了对应的代码地址:


    点开后,点击右上角的一个"Edit"图标,表示我可以在自己的分支上去修改这个代码,如图在这里(红框中的修改图标):


    这个时候,我就可以去修改我要改动的第217行错误的代码了:


   如图所示,我已经将这个forge命令从官网中的:

$ project-add-dependencies org.jboss.spec:jboss-javaee-7.0:1.0.3.Final:provided:pom
          修改成了:

$ project-add-dependencies org.jboss.spec:jboss-javaee-7.0:1.0.3.Final:pom:provided
       至此,已经解决了使用官网中的forge命令产生错误的pom文件的bug,接下来,就是要向原作者发送请求了,通知他们这里有一个bug,仍然是上面的界面,往下拖动滚动条:


    我的这个截图有个问题,先选择“Commit directly to the develop branch”,把自己修改的代码提交到本地的“develop”分支,中间是我所填充的和源码作者的交流内容:

Hello author:there is a fault for a command at line 217 which is "$ project-add-dependencies org.jboss.spec:jboss-javaee-6.0:1.0.0.Final:pom:provided ",perhaps when i execute this command, this project's pom.xml has an error , like:"<type>provided</type>; <scope>pom</scope>",so i changed this command like"~Final:provided:pom",then, it's right. 
       之后点击“Propose file change”,就将修改放到了本地“develop”分支。

    再往后,点击界面上方的“pull request”,这里也是我今天刚学到的地方,如何和原作者联系:“https://help.github.com/articles/about-pull-requests/”这是GitHub官网给出的操作方法,之后的界面,点击create pull request之后,如图:


    在这里,可以选择自己本地代码的分支,因为我将修改后的代码提交到了我的“develop”分支,就在“compare”选项中选择“develop”和原作者的“base fork”代码进行对比,如图:


    这一步骤应该是要我确认下代码信息,没有问题后点击“Create pull request”:


   下面就是等待“Arquillian”这个开源项目的原作者来处理我的请求了,至此为他们发现并解决了一个利用forge命令来添加<dependency>依赖时的bug,而此时,我也成为了这个项目中这个模块下的一个contributors了。

      

     That's all.

    最后感谢文彬让我研究这个Arquillian的EJB测试,感谢浩哥当时提供的技术支持。

       


   

这篇关于【Git之窗】(二)记我为“Arquillian”开源框架贡献一次源码的经历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109701

相关文章

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

电脑多久清理一次灰尘合? 合理清理电脑上灰尘的科普文

《电脑多久清理一次灰尘合?合理清理电脑上灰尘的科普文》聊起电脑清理灰尘这个话题,我可有不少话要说,你知道吗,电脑就像个勤劳的工人,每天不停地为我们服务,但时间一长,它也会“出汗”——也就是积累灰尘,... 灰尘的堆积几乎是所有电脑用户面临的问题。无论你的房间有多干净,或者你的电脑是否安装了灰尘过滤器,灰尘都

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听