专栏首页Hans362 's Lab使用Jenkins CI为Nukkit持续集成

使用Jenkins CI为Nukkit持续集成

最近搭了个Jenkins,在一番艰难困苦的研究之后,终于成功的使用Jenkins编译了一个Maven项目Nukkit。虽然过程艰辛了点,但是从长远来看还是挺方便的,实现了自动检测GayHub上面的项目更新并且自动完成构建,岂不美哉?

话说这篇文章拖了好久啊...元旦前一个周末就开始写了,现在元旦放假还没写完...我保证这篇文章一定是我有史以来最用心的...没有之一!

项目简介

Nukkit是一个由iDeaLeaper一群大佬们写的强大的Minecraft PE非官方开服程序,使用JAVA环境运行,项目代码开源。但是由于MC更新频率极快,所以服务端也需要不断更新,故需Jenkins进行持续集成。

GayHub项目地址:https://github.com/Nukkit/Nukkit

官方提供的编译方法如下:

git submodule update --init
mvn clean
mvn package

构建环境配置

首先Nukkit是一个Maven项目,因此Jenkins中要把Maven Intergration插件装好,便于新建Maven项目。同时安装Apache Maven,并配置环境变量。

插件安装非常简单,在Jenkins系统设置-插件管理-可选插件里面搜索Maven Intergration就可以安装了

Maven的话我用的是Ubuntu,直接执行:

 apt-get install maven

安装完成之后输入mvn -version就会出现Maven路径,再到Jenkins中系统设置-全局工具配置填写Maven路径

此外,Git等一些常用的组件也要安装好,具体就不详述了,偷个小懒哈(跑

建立Maven项目

Jenkins中点击左侧的建立新的Item,名称随意,项目类型选择Maven(如果没有这个选项一定是你的Maven Intergration插件没有安装好,请检查上一部分操作是否正确)

接下来就是项目信息的配置填写了,这里不多说话,直接上图吧

需要注意的是源码管理中的Credentials请填写你自己的GayHub账户(不填好像也没什么关系吧)

初次构建

到这里为止就基本设置完啦~想想自己的Jenkins即将跑起第一个项目心里还是挺激动的!

But...在控制台里一大片红色文字闪过后你得到了一个红色的小球(编译失败)

怎么会这样呢?

我翻了好久的Issue终于发现了有人和我一样,是缺少对应的库文件,只需要把 https://github.com/Nukkit/Nukkit/raw/master/lib/leveldb.jar 丢进Maven的Lib文件夹里就可以啦

紧接着再跑一次构建,终于得到了编译好的Nukkit.jar

到这里这篇文章就差不多了,只要Jenkins一直运行着,他就会默默帮你检测代码更新,跑代码,测试,构建JAR,听起来就很棒呢!

感谢各位的阅读~如果有什么问题下方留言即可,我会尽力解答哒

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 线程池的实现

            任务接口:每个任务必须实现的接口,主要用来规定任务的入口、任务执行完后的收尾工作、任务的执行状态等。 工作线程通过该接口调度任务的执行。

    Rekent
  • Java UDP的简单实例以及知识点简述

      Java中实现UDP协议的两个类,分别是DatagramPacket数据包类以及DatagramSocket套接字类。

    Rekent
  • JVM内存区域与OOM

    当虚拟机在执行方法testMethod的时候,这时候就会在Java虚拟机栈上创建一个栈帧,然后入栈,然而在testMethod方法内又不断的递归调用testMe...

    大大大大大先生
  • Java 实现二叉树的构建以及3种遍历方法

    大二下学期学习数据结构的时候用C介绍过二叉树,但是当时热衷于java就没有怎么鸟二叉树,但是对二叉树的构建及遍历一直耿耿于怀,今天又遇见这个问题了,所以花了一下...

    Rekent
  • Java 循环队列的实现

      队列(Queue)是限定只能在一端插入、另一端删除的线性表。允许删除的一端叫做队头(front),允许插入的一端叫做队尾(rear),没有元素的队列称为“空...

    Rekent
  • JVM的垃圾收集器策略

    程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存...

    大大大大大先生
  • Java 冒泡排序与快速排序的实现

          (1)基于交换思想的排序算法         (2)从一端开始,逐个比较相邻的两个元素,发现倒序即交换。           (3)一次遍历,一定能...

    Rekent
  • 栈的Java简单实现

      进行插入和删除操作的一端称为“栈顶”(top),另一端称为“栈底”(bottom)。

    Rekent
  • Java TCP通信概念及实例

                  <1>TCP:类似于电话系统,建立双向的通信通道,确定连接,话音顺序接听。

    Rekent
  • Java 通过先序中序序列生成二叉树

      二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证。

    Rekent

扫码关注云+社区

领取腾讯云代金券