Ⅰ jenkins把WAR包打到哪里去了
jenkins默认会存放在用户主目录下的.jenkins文件夹中
如:Linux root用户:/root/.jenkins
注意:这是linux版本的。windows系统请自行更改。这个值在Jenkins运行时是不能更改的. 请先将Jenkins停止运行。
如果查看当前Jenkins目录:系统管理→系统设置→主目录→/root/.jenkins(注意:用户不同,路径也不同)
Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改:
使用你Web容器的管理工具设置JENKINS_HOME环境参数.
打开tomcat的bin目录,编辑catalina.sh文件。
在# OS specific support. $var _must_ be set to either true or false.上面添加:export JENKINS_HOME=""
在引号中填入你的路径。
在启动Web容器之前设置JENKINS_HOME环境变量.
用root用户登录
编辑profile文件:vi /etc/profile
在最后加入:export JENKINS_HOME=xxxx
保存,退出后执行:source /etc/profile
让配置生效
(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件.
<!-- if specified, this value is used as the Hudson home directory --> <env-entry> <env-entry-name>HUDSON_HOME</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value></env-entry-value> </env-entry> <!-- 在<env-entry-value>节点中填入路径,windows系统建议使用/分隔路径 -->
好了,现在运行Jenkins看看效果吧。
Ⅱ 用jenkins怎么对web工程打包
1.系统管理->管理插件->可选插件->搜索“Deploy to container Plugin”,勾选插件直接安装,等着Jenkins自动安装完成。此时我们打开我们之前新建的项目选择“增加构建后的操作”中增加了一项“Deploy war/ear to a container",将我们的war和ear工程部署到容器。
2.我们添加一个deploy war/ear to a container选择,Jenkins中构建后操作多出一个发布选项
WAR/EAR files:是war包的相对路径
content path:tomcat的发布路径,即使用localhost/(content path设置的名字)来访问项目.
contaners :发布到的容器,主要可发布到tomcat、jboss、GlassFish
deploy on failure:发生错误的时候是否发布到tomcat
3.点击add contaners 添加发布的容器,我们这里要发布到tomcat,所以我这里添加的是tomcat
Ⅲ jenkins配置文件在哪
当然,你也可以为你的目标机器安装SSH服务。
我先说说解决的思路,然后再附上具体的步骤和shell脚本。
思路:将jenkins安装在linux系统上--->SVNcheckout部署的项目--->maven插件编译、打包--->使用jenkins的FTP插件将需要部署的项目或打成的包上传到指定的机器--->执行shell脚本登录该机器进行解压、部署、启动等操作(也可以直接执行写好的shell)。
具体步骤:
(1)源码管理,填写相应的项目SVN地址以及用户名密码
(2)配置mavenbuild,maven插件的配置在系统设置里面设置。
(3)FTP上传
这里的Sourcefiles是jenkins的workspace的相对路径,Removeprefix为取消的前缀(只保留项目名称部分)。
(4)构建时执行脚本
这是Telnet远程登录的脚本
#!/usr/bin/envshUSERNAME=swdev#登录用户名PASSWARD=swdev#登录密码TAR=icore-business-ecif-biz-0.0.1-SNAPSHOT-unix.tar.gz#TAR是上传的压缩包的名字MODEL=provider#MODEL是压缩包根目录的名字和启动的二进制程序名一样DEPLOY_DIR=ecif#DEPLOY_IP是上传文件所在的目录REMOTE_IP=192.168.2.3#登录IP(sleep1;echo"$USERNAME";\sleep1;echo"$PASSWARD";\sleep1;echo"cd\$HOME/$DEPLOY_DIR";\sleep1;echo"chmod+x./deploy";\sleep1;echo"nohup./deploy$TAR$MODEL2>&1>deploy.log&";\sleep10)|telnet$REMOTE_IPexit0
(5)构建后执行脚本deploy.sh(主要用于解压、部署、启动等操作,这个放在上传文件所在的目录中)
#!/usr/bin/envsh##$1tar.gzname#$2providersourcefoldername#set-elog_message{echo"[$(date+%Y%m%d-%H:%M:%S)]$1"}BASDIR=$(dirname$0)if[$#-lt2];thenlog_message"Usage:$(basename$0)[tarname][providername]"exit1fi#Stoppreviousversionandbackup,thenremovepreviouspackageCMD="$BASDIR/$2/bin/$2"if[-e"$2"];then$CMDstopbackup="${2}-$(date+%Y%m%d%H%M%S)"log_message"Backuppreviousapplicationto${backup}.tar.gz"tar-cvf$backup.tar$2gzip${backup}.tarrm-rf$2filog_message"Extractpackagebegin"gunzip-c$1|tar-xvf-#Generatelogdirectorymkdir-p$BASDIR/$2/logslog_message"Startingapplication"$CMDstart
这个脚本只是一个示例,需要根据具体业务具体而定。
最后呢,遇到的几个比较坑的地方拿出来与大家分享下:
FailedtoparsePOMs.
原因:本地服务器和maven服务器之间的连接出现了问题,导致jar包无法下载而报错
解决方法:
vi/etc/hosts
在文件末尾加上你所使用的私服地址如:"192.168.1.1www.nexus.xxx.com"
运行"#/etc/init.d/networkingrestart"重启网络
Ⅳ Jenkins自动部署笔记(二)全局工具配置
前提条件:
1.已安装并启动Jenkins。
2.已安装下列插件。
(1)Git plugin 可能默认已经安装
(2)Git client plugin 可能默认已经安装
(3)Maven Integration plugin
(4)Publish Over SSH 用于远程部署
(5)Gitlab Hook Plugin 用于gitlab提交触发自动部署
以上内容在Jenkins自动部署笔记(一)中有详细介绍
进入系统管理。
进入全局工具配置。
1.JDK
(1)点击“JDK安装...”
(2)点击新增JDK按钮,填写别名(随便起)、JDK安装路径即可。JDK在上一节已安装,所以这里我们直接选择安装路径。
2.Git
填写名称(随便起)、安装路径即可。
3.Maven
点击新增Maven按钮,勾选自动安装,在“从Apache安装”下拉列表中选择一个版本即可。
4.NodeJS(主要用于vue前端项目的自动打包部署)
点击新增NodeJS按钮,填写名称(随便起),勾选自动安装,在版本下拉框中选择一个NOdeJS版本。
5.点击保存按钮后,刚才选择自动安装的工具会在后台自动安装。到此,全局工具配置基本结束。
Ⅳ Jenkins Gitlab 前端构建发布
流程:通常是从gitlab/github拉取项目,构建,把产出文件发到服务器。
一、环境
创建任务之前,要先配置两项:
问题1:jenkins credentials配置SSH
系统管理 -> Manage Credentials -> 全局凭据 (unrestricted) ->添加或者编辑
注意:这里的key是个大坑,最开始我纠结是填私钥还是公钥,发现粘贴进去都不对。(粘贴私钥时我粘贴的是正文,没有复制首尾两行,导致一直报错。)最后把私钥整个粘贴进去就对了。
原因:
由于Jenkins的安全策略配置了CSRF跨站点保护。
解决方案:
进入Jenkins,系统管理-->全局安全配置,勾选匿名用户具有可读权限和去掉CSRF防止跨站点请求伪造:
在 /configure 下
这个插件是jenkins连接linux系统的时候使用。
以下针对插件的每个属性进行说明。
Name
SSH Server的Name属性就是你希望连接的服务器。
Source files
这里输入的是你希望传到服务器的文件夹和文件。路劲是相对jenkins的workspace的项目名称的。例如编译打包后的路径为dist文件夹下的jenkinszip.tar.gz,则Surce files填入dist/jenkinszip.tar.gz。
Remove prefix
如果Source files为dist/jenkinszip.tar.gz,但是不想把dist目录创建到服务器端,这个时候就可以在Remove prefix里填入dist
Remote directory
这里指定文件将被拷贝到服务器的路径。
PS:被拷贝文件在服务器上的完整路径=登录服务器账号的默认路径(就是全局设置的Remote Directory)+当前任务配置的Remote directory。
例如我的服务器路径是 /home/wwwroot/aaa
我全局配置Remote Directory 是 /home/wwwroot
当前任务配置的Remote Directory 是 /aaa/
Exec command
这里就是连接服务器之后需要执行的命令。
注意:这里配置的Secret token和 webhook要填写到gitlab里面,路径如下:
参考文章: https://blog.csdn.net/hou_ge/article/details/103507947