文档章节

jenkins + maven + svn + tomcat 自动部署

求学ing
 求学ing
发布于 2015/10/30 18:34
字数 1240
阅读 13579
收藏 64
点赞 1
评论 1

    jenkins  是做什么用的,如果不知道请自行google   

    通俗的说  jenkins 可以帮助我们编译发布代码,比如我们提交到SVN后,要发布运行,就可以用过jenkins进行编译运行

环境(这里主要标注下我的环境):

1: SVN服务器 项目检出地址 https://192.168.1.22/svn/trunk/crm   (centos)

2: maven  私服    http://192.168.1.23:8080   (cnetos)

3: tomcat web server  http://192.168.1.24:10086   (centos)   #这个tomcat我使用的不是8080因为这个端口要让jenkins来使用.当然这些不是固定的!!

    注: 因为我这边是测试环境,就吧jemkins放到了tomcat web server 上.

正式部署jenkins

A:登录192.168.1.24 部署jenkins  #我使用的帐号是root,你可以用其它的.

这台机器安装了tomcat7 和 JDK8, 主要用到了下面两个环境变量.

export JAVA_HOME=/usr/local/jdk8            #环境变量

export CATALINA_HOME=/usr/local/tomcat7    

mkdir -p /usr/local/jenkins  #用来存放下载的jenkins

下载地址: http://mirrors.jenkins-ci.org/war/ 在这里选择安装版本

wget http://mirrors.jenkins-ci.org/war/1.588/jenkins.war

    #我这里下载的版本是 1.588  是14年11月更新的.  我安装最新的版本的时候没能正确安装部署war到tomcat server的插件...能力问题..

执行命令  java -jar jenkins.war        #如果报类似下面的警告执行这个命令  java -Dhudson.DNSMultiCast.disabled=true -jar jenkins.war

十一月 19, 2014 4:13:12 下午 javax.jmdns.impl.DNSIncoming readAnswer 
警告: There was an OPT answer. Not currently handled. Option code: 65002 data: 6DE368DADD8543B8

一般情况到此安装结束.  访问http:192.168.1.24:8080  就能出现jenkins界面  #jenkins默认使用8080  更改端口需要在执行命令的时候添加参数.

    注: 执行 java -jar jenkins.war 命令以后  在当期用户的家目录会生成一个.jenkins目录,  以后创建的项目,编译生成的war文件都在里面. 如果刚部署好里面应该没有这么多文件.

    

B: 项目的添加    #这个项目的流程 从svn检测代码---> 编译----->发布到tomcat webapps目录.

1:点击 左上角的"新建" 出现下面的界面

    注:为例方便我们的java开发人员我们搭建了一个maven私服 , 在crm项目的pom文件里配置了maven私服的地址,在jenkins编译java代码的时候遇到需要jar包回到我们的maven私服去下载.

2:配置crm项目里面的各项内容

    a:配置subversion  如图

    

    选择Subversion   配置 Repository URL   配置你svn里面的项目,然后会提示你配置检出项目的用户与密码. 其选项默认

    b:点击 "增加构建后操作步骤" 选择 "Deploy war/ear to a contalner"  这个选项是安装插件以后才有的.  安装"Deploy Plugin"插件.

       注: 插件下载地址:http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/plugins/deploy/1.10/deploy.hpi  下载插件以后通过 系统管理-->管理插件-->高级 上传插件 然后重启jenkins( 下载地址时间长了也许会失效)

    

    c:配置有关编译好的war目录与tomcat的相关配置

    

    WAR/EAR files 这个里面配置的是:相对于jenkins的workspace目录的相对路径.  我的全路径是/root/.jenkins/workspace/crm/crm.adminWeb/target/crm.adminWeb.war  

    context path  /   #/ 代表的是会把crm.adminWeb.war 换成ROOT.war放到 tomcat的webapps目录.

    tomcat的信息主要是用户名和密码(来自tomcat-users.xml)  还有tomcat访问的地址http://192.168.1.24:10086 

  到此 jenkins 部署 自动检出发布java代码完成... 到主界面点击带有绿色箭头的图标进行 检出-->编译--->发布  如下图   #点一下就好了...反映会有一点迟钝.


补充: 

enkins默认会存放在用户主目录下的.jenkins文件夹中 #这个感觉很不爽..因为jenkins目录以后会边的很大.....

如:Linux root用户:/root/.jenkins

注意:这是linux版本的。windows系统请自行更改。这个值在Jenkins运行时是不能更改的. 请先将Jenkins停止运行。

如果查看当前Jenkins目录:系统管理→系统设置→主目录→/root/.jenkins(注意:用户不同,路径也不同)

 

首先移动用户家目录下的隐藏jenkins目录移动到到指定的目录下面 /storage

mv /home/.jenkins   /storage/jenkins   

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下两种方式更改:

  1. 使用你Web容器的管理工具设置JENKINS_HOME环境参数.

    打开tomcat的bin目录,编辑catalina.sh文件。
    在# OS specific support.  $var _must_ be set to either true or false.上面添加:export JENKINS_HOME="/storage/jenkins"   #你可以指定别的目录
    在引号中填入你的路径。
  2. 在启动Web容器之前设置JENKINS_HOME环境变量.

    用root用户登录
    编辑profile文件:vi /etc/profile
    在最后加入:export JENKINS_HOME=/storage/jenkins        #你可以指定别的目录
    保存,退出后执行:source  /etc/profile
    让配置生效


最后重启jenkins服务就OK了!!  

/usr/bin/java -Dhudson.DNSMultiCast.disabled=true -jar /usr/local/jenkins/jenkins.war&


© 著作权归作者所有

共有 人打赏支持
求学ing
粉丝 12
博文 144
码字总数 72348
作品 0
昌平
加载中

评论(1)

aspboy
aspboy
非常好 回头实验一下
super_empire/patch-generator-parent

patch-generator-parent 通用svn、git增量部署补丁生成器,可用于svn/git/getee管理的maven项目的增量部署文件生成,支持多模块父子项目. 该模块可以对git/svn管理的项目进行增量代码生成用于...

super_empire ⋅ 04/20 ⋅ 0

Maven自动部署(SCM-SVN/Git)(maven-scm-plugin/maven-release-plugin插件的使用)

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/mavendeployment_automation.html: 注意:Maven自动构建和自动部署的区别在于,构建只是编译代码阶段,而部署...

easonjim ⋅ 2017/05/15 ⋅ 0

Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)

SVN Publisher Plugin:https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher 构建完成后的文件,比如Maven打的war包,可以通过SVN Publisher Plugin插件上次到指定的SVN,下面是收集...

easonjim ⋅ 2017/05/08 ⋅ 0

解决jenkins打包时不能及时更新到最新代码的问题

首先要定位是否真的拉不到最新代码? 定位步骤如下: 1、在SVN上,查看show log,没有记录 2、登录Jenkins,查看构建的输出记录,Console Output, ctrl+f,若找不到最新代码,则可以确定是拉...

金龙鱼管家 ⋅ 04/28 ⋅ 0

svn: E170001报错的原因以及解决方案

什么问题What? 使用Jenkins配置的svn拉取项目,Jenkins报错:svn: E170001,经过查阅资源,该问题是由于svn的账户名和密码没有权限。重新换一个有权限的Svn账号,还是出现此问题。具体问题如...

yzbty23 ⋅ 06/05 ⋅ 0

Intellij Idea 从 Svn 检出 Maven 项目、部署 Tomcat 运行

之前一直用的MyEclipse,现在换个开发工具试试,随手记录一下Intellj Idea 工具的使用,这里导入的Maven项目是Eclipse的结构。 软件环境 JDK 1.8 Tomcat 7 Intellj Idea TortoiseSVN Apache...

华山猛男 ⋅ 03/21 ⋅ 0

通用 svn、git 增量部署补丁生成器 - patch-generator-parent

通用 svn、git 增量部署补丁生成器,可用于 svn/git/getee 管理的 maven 项目的增量部署文件生成,支持多模块父子项目。 总共包含四种生成方案: git 服务器分支提交分析; git 提交日志分析...

em_Aaron ⋅ 04/13 ⋅ 0

ansible+nginx+apache+svn自动化发布

一.ansible根据以下网址进行安装 http://blog.51cto.com/8999a/1965139 二.nginx+apache+svn安装 rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.n......

轻狂书生999 ⋅ 05/02 ⋅ 0

SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

背景情况:SVN与WEB不在同一台服务器上,需要SVN提交后WEB站点自动进行SVN UPDATE更新,查阅网上的教程,发现部分的细节和权限部分没有提到导致跨服务器ssh执行更新脚本失败,手动执行post-...

PartyAnimals ⋅ 06/21 ⋅ 0

【git学习】SVN项目迁移到Git操作指南

2017年6月份的时候,我就着手在公司推广git,首先我自己尝试搭建了GitLab来管理代码,并且通过以下博客记录了GitLab的搭建,以及GitLab备份,GitLab升级等事情。 git学习——>在CenterOS系统...

qq446282412 ⋅ 05/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部