jenkins发布java项目
前言:这台jenkins服务器的环境是前几篇博客一步步做实验做过来,如果有想做这篇博客的实验的朋友,可以移驾去看一下前几篇博客,另外有看着博客做完的博友,可以在下方留言,证明我做的这些都是对的,有看着博客做不下来的博友,可以留言交流.
实验环境ip说明:
10.0.0.26:gitlab
10.0.0.27:jenkins
10.0.0.28:jdk+tomcat8
1.10.0.0.28部署JDK、Tomcat环境
不想在首页下载最新的JDK,想下载其他版本的JDK,找Java Archive模块,在页面的最下面,
http://www.oracle.com/technetwork/java/javase/archive-139210.html
a.测试环境,直接用openjdk试一下
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz
tar xf /root/apache-tomcat-8.5.37.tar.gz -C /usr/local/
cd /usr/local/
mv apache-tomcat-8.5.37/ tomcat
b.准备好JDK+Tomcat环境并且Tomcat能够正常服务后,还需要配置Tomcat的用户文件
vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user name="admin" password="root123456" roles="manager-gui"/>
</tomcat-users>
截图

c.访问10.0.0.8:8080,报错

这是因为context.xml限制了访问ip,只需要配置白名单ip即可,不然默认只允许本地访问,
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10.0.0.*" />

这里的allow本来不是10.0.0.*网段,而是我的windows本机无线IP-192.168.1.*,重启tomcat后发现无法访问,改成了现在的网段可以访问了,因为这个环境是用虚拟机做的,网络是用NAT配的,所以改成10.0.0.*之后,应该是用这个虚拟网卡去访问虚拟机了.

访问成功页面

2.10.0.0.27创建本地库
先在gitlab上创建project

接下来在命令行操作
cd /home/
wget https://codeload.github.com/94fzb/zrlog/zip/master
unzip master
cd zrlog-master/ # 这个目录下是有pom.xml文件的
cd /home/
git clone git@10.0.0.26:Linkdood-yw/java-zrlog.git
cd java-zrlog/
mv ../zrlog-master/* .
git commit -m "first commit"
git push -u origin master
3.构建发布任务
检查是否已经安装Maven Integration和Deploy to containe,Maven Integration是用于构建Maven项目的,而Deploy to container则是用于发布远程war包的.
构建job

添加仓库URL

配置build
clean install -D maven.test.skip=true

配置完保存之后,就可以点击立即构建来构建这个maven项目了.

4.发布war包
a.回到项目的配置,在构建后操作那一栏点击"增加构建后操作步骤",选择"Deploy war/ear to a container":

b.Containers选择Tomcat 8.x,Tomcat URL填写要把war包发布到的那台机器的url:
c.Credentials这里需要点击右侧的Add,添加用户名和密码:
这里的账号和密码必须和远程tomcat的conf目录下的tomcat-user.xml中保持一致

截图

d.配置完之后点击保存,构建后发布war包失败

图片中可以清楚地看到,报错都是和TomcatManager有关,tomcat7之后,管理用户必须具有manager-script角色,manager-gui角色是不够的,不然会有错误出现,在tomcat-users.xml文件中添加了该角色之后,构建还是报错,添加了admin-gui之后,可以成功发布,索性多加了两个角色--manager-status、manager-jmx

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<user name="admin" password="root123456" roles="manager-gui,manager-script,manager-status,manager-jmx,admin-gui"/>
有些博客说:发布失败有可能是内存泄漏,找到tomcat路径,用编辑器打开catalina.sh,加一行
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m,但是修改JAVA_OPTS,在OpenJDK新版本中已经移除了这种方法
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=64M; support was removed in 8.0
e.成功发布

访问:http://10.0.0.28:8080/zrlog-2.1.0/admin
cat /home/java-zrlog/README.md 获取博客登录界面的账号密码admin:123456

参考博客:http://blog.51cto.com/zero01/2074341
参考博客:https://blog.csdn.net/fjl19900121/article/details/80901997
jenkins发布java项目的更多相关文章
- 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目
jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...
- 项目案例之Pipeline流水线发布JAVA项目(三)
项目案例之Pipeline流水线发布JAVA项目(三) 链接:https://pan.baidu.com/s/1NZZbocZuNwtQS0eGkkglXQ 提取码:z7gj 复制这段内容后打开百度网 ...
- Centos 如何 发布Java项目
在发布Java项目之前,我们先要安装如下软件 一.Windows 1.winscp(Windows到centos上传下载) 2.PuTTY(Windows访问centos服务器) 3.Navicat客 ...
- jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)
jenkins部署java项目到远程linux上,脚本文件和项目一起上传到gogs上,直接执行gogs上的脚本文件来执行项目 (1)新建maven项目 pom.xml的配置 <project x ...
- jenkins构建java项目找不到命令mvn,java的解决方法
jenkins构建java项目时出现的报错情况: $ mvn clean install FATAL: command execution failed java.io.IOException: er ...
- windows jenkins 发布 springboot项目脚本
windows jenkins 发布 springboot项目脚本 1.关闭现有程序 (按端口关闭) [与按应用关闭 二选一] @echo off for /f "tokens=1-5&q ...
- 通过Jenkins部署java项目
部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...
- jenkins部署java项目
#########################################jenkins部署#################################3 一.jenkins是什么? J ...
- Win10搭建Jenkins部署Java项目(本机和远程Win10部署)
目录 一.前言&背景 二.环境准备 三.插件安装 四.全局配置 Maven JDK Git Maven 五.新建项目并配置 新建项目 配置 1.Discard old builds 2.Thi ...
随机推荐
- Yii2 AR模型搜索数据条数不对,AR模型默认去重
最近在做Yii2的项目时, 发现了一个yii2 自带的Ar模型会自动对搜索出来的字段去重. 默认去重字段: id, 其他字段暂没发现 1. 例如: public function fields { ...
- bash 统计在线时长最长的十个玩/统计一天内一直处于不活跃状态的玩家的百分比
1.某游戏的客户端每隔5分钟会向服务端报告一次玩家的账户积分,如果两次报告的时间间隔不大于5分钟,认为该玩家在这5分钟内在线,假设报告数据的格式如下: IP Dat ...
- Python虚拟机函数机制之参数类别(三)
参数类别 我们在Python虚拟机函数机制之无参调用(一)和Python虚拟机函数机制之名字空间(二)这两个章节中,分别PyFunctionObject对象和函数执行时的名字空间.本章,我们来剖析一下 ...
- OO第四单元博客
第四单元博客 这个单元的作业,emmmm助教们做的工作还是一如既往的多,我们只负责添一添代码,最后一次作业了,感谢各位助教和老师,同时也希望我能顺利通过这最后一关. 架构设计 第一次作业架构展示 第一 ...
- STL学习笔记2--list
List --- 双向列表 List是线性列表结构,数据查找需要一个接一个,不能直接得到元素地址,检索时间与目标元素的位置成正比.但是插入数据比较快,可以在任何位置插入数据或者删除数据.list特点是 ...
- Leetcode31--->Next Permutation(数字的下一个排列)
题目: 给定一个整数,存放在数组中,求出该整数的下一个排列(字典顺序):要求原地置换,且不能分配额外的内存 举例: 1,2,3 → 1,3,2: 3,2,1 → 1,2,3: 1,1,5 → 1, ...
- MyCAT+MySQL 搭建高可用企业级数据库集群——第3章 MyCat核心配置讲解
3-1 章节综述 3-2 常用配置文件间的关系 3-3 server.xml配置详解 3-4 log4j2.xml配置文件 3-5 rule.xml 3-6 常用分片算法(上) 3-7 常用分片算法( ...
- python 学习分享-列表元组篇
1 列表(list) 下面的代码就是把一个变量赋值为列表 a=['laay','aay','ay','y'] 列表中存在索引,可以通过索引来访问列表中的值,也可以通过索引完成切片 print(a[0] ...
- 4003.基于Dijsktra算法的最短路径求解
基于Dijsktra算法的最短路径求解 发布时间: 2018年11月26日 10:14 时间限制: 1000ms 内存限制: 128M 有趣的最短路...火候欠佳,目前还很难快速盲打出来,需继 ...
- Leetcode 472.连接词
连接词 给定一个不含重复单词的列表,编写一个程序,返回给定单词列表中所有的连接词. 连接词的定义为:一个字符串完全是由至少两个给定数组中的单词组成的. 示例: 输入: ["cat" ...