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

来源:互联网 发布:webpack优化 编辑:程序博客网 时间:2024/06/05 05:16

    在上一家公司工作的时候,组长说,以后找工作简历上写,我为“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测试,感谢浩哥当时提供的技术支持。

       


   

6 0
原创粉丝点击