一、系统版本centos7.6

二、根据jenkins官方安装方法yum安装jenkins

1、进入jenkins官网下载页面https://jenkins.io/download/,选择Red Hat/Fedora/CentOS

2、根据官方要求需首先安装java8

yum install java-1.8.0-openjdk-devel -y

3、然后导入jenkins yum源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

4、yum安装jenkins

yum install jenkins -y

5、手动启动jenkins

/etc/init.d/jenkins start

查看8080端口启动即可

6、通过浏览器访问设置jenkins,http://192.168.0.77:8080/

初始的管理员密码,jenkins自动生成的,根据页面红色的路径找到密码,拷到下面的输入框中。

选择默认建议安装插件

7、安装完进入后选择系统管理-插件管理,手动安装Maven Integration plugin

三、系统安装maven程序

1、进入maven官网http://maven.apache.org/download.cgi#,选择maven二进制tar包下载

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

2、解压maven包

tar -zxvf /root/apache-maven-3.6.0-bin.tar.gz -C /usr/local

四、安装nodejs和npm

1、去官网下载nodejs二进制包https://nodejs.org

因为我们使用的是node8.11.1,我这次安装也使用这个版本

wget https://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.gz

2、解压nodejs包

tar -zxvf node-v8.11.1-linux-x64.tar.gz -C /usr/local/

3、为了使用方便可以把nodejs命令加入到PATH路径

vim /etc/profile

export PATH=$PATH:/usr/local/node-v8.11.1-linux-x64/bin

source /etc/profile

4、npm安装包在国外,安装较慢,更换淘宝npm源

npm install -g cnpm --registry=https://registry.npm.taobao.org

五、配置jenkins上jdk和maven路径,进入系统管理-全局工具配置

六、构建项目设置

1、新建任务,构建一个maven项目

2、常规设置里面选择丢弃旧的构建,保留5天5次即可

3、源码管理选择svn,填写svn地址和svn账号密码

4、可以根据需要选择构建触发器,我这是手动构建,所以不选,构建环境选择在构建前删除原来构建项目

5、构建前步骤,因为我的项目需要首先npm打包后再给maven打包,所以在构建前需要执行shell命令进行npm打包

6、构建按如下写即可

7、构建后执行shell命令,首先远程关闭tomcat,然后删除tomcat webapps下文件,然后上传打包好的war包到tomcat下,然后启动tomcat

七、构建项目

1、点刚才创建的项目-立即构建,开始构建

2、发现最后远程执行命令报错,虽然之前也做了这两台机器无密钥登录,但是还是报错,查找原因后发现,yum安装jenkins后会自动创建一个jenkins账号,jenkins服务是以jenkins账号启动,所以需要做jenkins账号到远程部署服务器无密钥登录

这里注意几个坑:

1、默认jenkins账号是不允许登录的,需修改/etc/passwd里jenkins账号/bin/false为/bin/bash后才能切换到jenkins账号创建密钥

2、jenkins账号默认家目录是/var/lib/jenkins

3、需要开启jenkins账号sudo无密码登录,在/etc/sudoers里加入jenkins ALL=NOPASSWD:ALL

4、linux第一次ssh连接远程机器会有公钥确认提示,需要输入yes后才能继续,我们需要关闭提示,否则构建时候远程命令执行没法通过,在/etc/ssh/ssh_config里StrictHostKeyChecking ask改为StrictHostKeyChecking no,重启sshd服务

jenkins+maven+svn+npm自动发布部署实践的更多相关文章

  1. Jenkins+Maven+SVN搭建自动部署、自动测试环境

    .打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job.http://10.3.34.163:9890/ ...

  2. jenkins+maven +svn+tomcat7集群部署(一)

    在网上看了好多有关集群部署的文章,感觉都不是太连贯,非常多仅仅是给你说怎么安装而已,可是过程中遇到的问题真不少,可是也攻克了非常多问题,希望我的文章可以帮到那些想学习的人吧,jenkins主要是攻克了 ...

  3. jenkins+maven+tomcat集群发布

    jenkins+Gitlab+maven+tomcat实现自动集成.打包.部署 - 李栋94 - 博客园https://www.cnblogs.com/lidong94/p/7427923.html ...

  4. jenkins+maven+svn 自动化部署

    背景: 公司的web平台使用JAVA写的,但是不是用Tomcat部署的,代码内部自带了Web服务器,所以只需要有JAVA环境,将代码打包上传,启动脚本就可以. 项目是根据pom.xml打包成的是.zi ...

  5. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  6. jenkins+maven+docker集成java发布(二)#远程发布

    jenkins+maven+docker集成java发布(一)中写了在Jenkins服务器自动部署业务,那需要将java项目部署到其他服务器怎么操作 这里需要依赖插件Publish Over SSH ...

  7. jenkins+maven+svn构建项目,及远程部署war包到tomcat上

    要使用jenkins构建项目,当然要使用jenkins了,我使用的war版本的jenkins jenkins的官网 http://jenkins-ci.org/ 点击latest下载,但是可能因为天朝 ...

  8. jenkins+maven+svn实现简单的一键发布

    前言      在安装之前,我想说明一下本文的目的,jenkins的一款持续集成工具,      它可以做的事情很多,其中一个主要的功能就是简化部署流程          回想一下我们的发布流程:   ...

  9. jenkins+maven+docker集成java发布(一)自动发布

    JAVA项目持续集成发布 标签(空格分隔): java jenkins 微服务中持续集成自动发布是很重要的一个环节,将不同的模块应用自动部署到一台或者N台服务器中如果采用人工部署的方式不太现实 git ...

随机推荐

  1. pt-osc原理、限制、及与原生online-ddl比较

    1. pt-osc工作过程 创建一个和要执行 alter 操作的表一样的新的空表结构(是alter之前的结构) 在新表执行alter table 语句(速度应该很快) 在原表中创建触发器3个触发器分别 ...

  2. 检索 COM 类工厂中 CLSID 为 {00021A20-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80080005

    创建Excel对象失败: Excel.Application xApp = new Excel.Application(); 错误提示:{"检索 COM 类工厂中 CLSID 为 {0002 ...

  3. AWS服务学习

    什么是云计算? 云计算是用户通过Internet云服务平台按需提供计算能力.数据库存储.应用程序和其他IT资源,采用按需支付定价模式 无论您是在运行拥有数百万移动用户的照片共享应用程序,还是要为您的业 ...

  4. Vue.js Is Good, but Is It Better Than Angular or React?

    Vue.js is a JavaScript library for building web interfaces. Combining  with some other tools It also ...

  5. python class根据配置自定义函数

    今天看到了一种有趣的定义函数的方式: class Test(object): def define_get_methods(cls, method_name, path): def inner_get ...

  6. [NOIP2016 DAY1 T2]天天爱跑步-[差分+线段树合并][解题报告]

    [NOIP2016 DAY1 T2]天天爱跑步 题面: B[NOIP2016 DAY1]天天爱跑步 时间限制 : - MS 空间限制 : 565536 KB 评测说明 : 2s Description ...

  7. AnyHashable类型擦除的原因:set和dictory需要指定一个确定的类型

    AnyHashable 属于无关联类型的擦除. 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来. 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口). A typ ...

  8. Could not find class com.google.gson.Gson

    在Android开发中使用gson解析json字符串,出现异常:java.lang.classnotfoundexception:com.google.gson.Gson.解决方案如下: 这个异常的怪 ...

  9. docker swarm英文文档学习-4-swarm模式如何运行

    1)How nodes work Docker引擎1.12引入了集群模式,使你能够创建一个由一个或多个Docker引擎组成的集群,称为集群.集群由一个或多个节点组成:在群模式下运行Docker引擎1. ...

  10. weblogic92一次成功修改密码的记录

    假设你忘记了weblogic92控制台的密码了: 假设你的hostname叫localhost.localdomain 假设你的bea在/opt下: ------------------------- ...