jenkins自动发布java代码

jenkins笔记(1)进行实战java代码发布,此利用github私有仓库拉去,jenkins利用maven编译源码后讲包发布致web服务器。

一、git私有仓库创建

可参考GIT笔记中远程仓库搭建部分,此处java源码使用zrlog,将源码pull到github上,将jenkins公钥配置到github上,即可下一波。

二、web服务器tomcat配置

在需要将代码发布的web服务器上需要配置tomcat的manager页面。

yum install java-1.8.0-openjdk.x86_64 -y && \
wget -c -O /usr/local/apache-tomcat-9.0.2.tar.gz && \ http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz && \
cd /usr/local/ && tar -xf apache-tomcat-9.0.2.tar.gz &&\

此时tomcat已经安装成功,需要配置manager页面。
需要在/usr/local/tomcat/conf/tomcat-users.xml 添加以下内容。

<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="kaliarch" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

修改完毕如上图,添加manager的role角色权限,其次需要修改manger页面的源控访问,添加jenkins的ip为白名单内。
修改/usr/local/tomcat/webapps/manager/META-INF/context.xml
默认tomcat的manager页面只允许本地的和ipv6的地址,此处我的jenkins服务器ip为:172.20.6.0/24,可根据实际情况来定,支持网段,不要开放全部开放0.0.0.0,以防黑客入侵。


配置完成后需要启动tomcat/usr/local/tomcat/bin/startup.sh
此时,我们可以进行测试web服务器的tomcatmanager界面,http://IP:8080/manager/index.html
填写配置文件内的用户名:admin,密码:kaliarch

三、创建发布项目

发布java,需要安装两个插件,Maven Integration plugin 和 Deploy to container Plugin,若没有安装则需要安装这两个插件 安装完插件后,需要重启jenkins。

3.1 新建item

输入项目名称,选择构建一个maven项目,确定。

3.2 配置源码管理

源码管理选择git,填入仓库url

此时发现会出现报错信息,因为此仓库为我的私有仓库,需要配置Credentials,点开add, Add Credentials的 Kind选择SSH Username with private key,Username选择之前在github上传的公钥用户的用户名,此次为root,Private Key为jenkins服务器登录github的本地私钥,查看私钥cat /root/.ssh/id_rsa 复制粘贴到Key区域,完成添加。此时可以发现报错已经消失。

3.3 配置发布到web服务器

添加增加构建后操作,选择Deploy war/ear to a container,WAR/EAR files填写**/*.war,Containers选择增加容器,增加tomcat 8.x,Credentials点add,此处填写的为tomcat的manager页面的用户名密码,此处为admin/kaliarch,

tomcat url填写web服务器的tomcaturl,

3.4 配置邮件信息通知

添加增加构建后操作,选择Editable Email Notification,利用插件邮件来发送通知。
可以根据需求自定义邮件主题与内容,此处添加信息接受人,由于全局配置了always,在高级设置内,填写接受人邮箱。

3.5 信息查看

点击保存,并立即构建,可以查看日志信息。

登录web服务器,查看war包已经发布完成。


打开web页面进行测试。

查看邮件通知。

至此,java程序已经完成发布,之后修改代码后可以提交到github,然后通过jenkins自动发布即可。

时间: 2025-01-26 13:00:48

jenkins自动发布java代码的相关文章

求一款自动生成java代码调用序列的eclipse插件

问题描述 求一款自动生成java代码调用序列的eclipse插件 我们知道java代码对于一个特定输入有一个调用序列,比如当前程序运行到A类,在A类中调用callB.b()进入B类,在B类中调用callC.c()进入C类等等. 有没有一款好的eclipse插件能够生成这种调用序列?

用Lombok代码自动生成Java代码 节约开发时间

一.Lombok是什么 Lombok是一款小巧的代码生成工具.官方网址:http://projectlombok.org/ LomBok主要特性有:自动生成默认的getter/setter方法.自动化的资源管理(通过@Cleanup注解)及注解驱动的异常处理等.目前在国外广泛应用. LomBok它和jquery一样,目标是让程序员写更少的代码,以及改进一些原始语法中不尽人意的地方.Lombok能做到这一点.既不是用 annotations process,也不是用反射.而是直接黑到了编译过程中.

诊断 Java 代码:设计轻松的代码维护

设计 本月,Eric Allen 解释了在使代码更易于维护的同时,避免和控制无理由的变化怎么会是保持代码健壮性的关键.他集中讨论了诸如函数样式代码编写之类的概念,以及标记字段.方法和类的方法来处理并防止可变性.Eric 还解释了本任务中单元测试和重构的角色,并提供了协助实现重构的两个工具.在相关论坛中与作者和其他读者分享您对本文的看法.(您也可以单击本文顶部或底部的"讨论",访问该论坛.)有效调试源自良好的编程.设计易于维护的程序是程序员面临的最困难挑战之一,其部分原因在于程序通常并不

javaweb-在linux服务器上重新发布java项目运行的代码不是最新的

问题描述 在linux服务器上重新发布java项目运行的代码不是最新的 我在方法中加了print打印,重新编译后在本机运行可以打印出来内容,但是把class文件重新部署到服务器上就不行了,tomcat也重启了,服务器也reboot了,项目也重新部署了几次,但是执行的代码不是最新的,控制台也没输出打印的内容 解决方案 服务器不要有print输出语句,你想看结果就用日志,服务器不推荐用print

ant编译-ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教

问题描述 ubuntu中,通过java代码自动执行ant打包命令,结果ant permission denied,求指教 ant权限已经更改了.且创建build.xml命令执行通过.当调用ant命令的时候.提示没有权限.好奇怪. 解决方案 就是在java中通过runtime.getruntime.exec执行命令 /bin/sh -c android create uitest-project....生成build.xml文件已经通过.但当通过exec执行命令/bin/sh -c ant bui

新浪云平台如何发布java web项目,怎么部署代码和环境、数据库?

问题描述 新浪云平台如何发布java web项目,怎么部署代码和环境.数据库? 新浪云平台如何发布java web项目,怎么部署代码和环境,需要什么权限,搭建完环境后就可以在平台上写代码了吗? 解决方案 没用过!不过阿里云在用,你就是远程连上自己配置啊!和你本地差不多的! 解决方案二: ibm云在搞免费 活动http://blog.csdn.net/evankaka/article/details/49836551 可以试试

soap信息发布,如何不用web页面上的表格发布而用java代码发布

问题描述 教材上是填写表格发布,或者用到一个servicemangerclient.java文件在cmd中输入javaorg.apache.server.servicemanageclienthttp:\localhost:8080soaprepcouterdeploydd.xml我想用java代码直接实现,哪位高手能教我一下

jenkins自动杀掉衍生进程怎么解决

 公司要求用jenkins来自动部署nodejs的代码,当我用docker把jenkins和node整合到一起,用jenkins自动构建的时候,我才发现jenkins每次构建完了后要自动杀掉我的node部署shell脚本,网上到处找解决办法,花了三个工作日终于解决问题了. 软件版本:   jenkins 1.651.2   node 5.3.0   docker 1.7.1 解决办法: 1.启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=tr

使用脚本文件(jnlp)来发布Java程序

本文为原创,如需转载,请注明作者和出处,谢谢!     发布Java程序(桌面程序)最直接的方法就是将jar文件打包交给用户.不过有时jar文件很多,也很大.为了方便,sun提供了另外一种方式来通过网 络发布Java程序.这就是jnlp文件.可能很多读者曾经下载过很多jnlp文件,运行后会自动从指定的网站下载相应的文件.     实际上,jnlp文件就是一个xml格式的脚本文件.假设我们有一个test.jar文件需要安装(该文件是一个基于SWT的桌面程序),那么要使用jnlp文件发布test.j