介绍

DevOps是“开发”和“运维”的缩写。

DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通,强调整个组织的合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付

DevOps平台四大模块

  1. 项目管理 (创建项目--->>项目需求)
  2. 运维平台 (监控--日志收集---等)
  3. 持续交付 (提交完代码--->自动打包--->构建)
  4. 代码托管 (gitlab---->代码提交)

    ————————————————————>>DevOps平台

针对DevOps开源项目

  1. 项目管理---(JIRA非开源但是用的人比较多)、(Redmine使用ruby写的)
  2. 代码托管---(SVN--usvn有web管理界面)、(GitLab)
  3. 持续交付---(主流Jenkins)、(GitLab gitlab-ci也可以做交付)
  4. 运维平台---(国内的开源运维平台可能就是腾讯蓝鲸)

Jenkins 介绍

Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有。Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson

Maven 介绍

maven的用途

maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。

maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性

利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。

maven的核心概念介绍

Pom
pom是指project object Model。pom是一个xml,在maven2里为pom.xml。是maven工作的基础,在执行task或者goal时,maven会去项目根目录下读取pom.xml获得需要的配置信息 pom文件中包含了项目的信息和maven build项目所需的配置 Artifact
这个有点不好解释,大致说就是一个项目将要产生的文件,可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId:artifactId:version组成的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中 Repositories
Repositories是用来存储Artifact的。如果说我们的项目产生的Artifact是一个个小工具,那么Repositories就是一个仓库,里面有我们自己创建的工具,也可以储存别人造的工具,我们在项目中需要使用某种工具时,在pom中声明dependency,编译代码时就会根据dependency去下载工具(Artifact),供自己使用。 Build Lifecycle
是指一个项目build的过程。maven的Build
Lifecycle分为三种,分别为default(处理项目的部署)、clean(处理项目的清理)、site(处理项目的文档生成)。他们都包含不同的lifecycle。
Build Lifecycle是由phases构成的 ....

参考: 关于Maven常用参数及说明

SVN介绍

SVN是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个固态的跨平台的开源的版本控制系统。SVN版本管理工具管理者随时间改变的各种数据。这些数据放置在一个中央资料档案库repository中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是,SVN会备份并记录每个文件每一次的修改更新变动。这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也可以直接浏览指定的更新历史记录。

Nexus介绍

maven的仓库只有两大类:

  1. 本地仓库
  2. 远程仓库

在远程仓库中又分成了3种:

  1. 中央仓库
  2. 私服
  3. 其它公共库。

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。

Maven私服的 个特性:

  1. 节省自己的外网带宽:减少重复请求造成的外网带宽消耗
  2. 加速Maven构件:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低
  3. 部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用
  4. 提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能
  5. 降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服也可以大大降低中央仓库的压力

因此我们在实际的项目中通常使用私服来间接访问中央仓库,项目通常不直接访问中央仓库

流程图


环境搭建

环境准备

系统版本 内核版本 IP地址
Centos 7.5 4.18.9-1.el7.elrepo.x86_64 172.20.0.50

备注 该系统采用MINI最小化安装,安装之后对系统进行了最基础的优化操作,操作过程点击这里

JDK版本 Tomcat版本 Jenkins 版本 maven 版本 nexus 版本
8u191 8.5.35 1.8.0_144 3.6.0 3.14.0

下载地址:

组件 官网下载地址 百度云盘下载地址
CentOS 7.5 阿里云镜像下载地址
JDK ORACLE官网下载地址 百度云盘下载地址 提取码:d06b
Tomcat ORACLE官网下载地址 百度云盘下载抵制 提取码:m86p
Jenkins RPM包 Jenkins官网下载地址 百度云盘下载地址 提取码:bk0t
Jenkins WAR包 Jenkins官网下载地址 百度云盘下载地址 提取码:59f5
Maven Maven官网下载地址 百度云盘下载地址 提取码:y49l
Nexus Nexus官网下载地址 百度云盘下载地址 提取码:iyw5

以上的官网地址在当前都是有效的,如果失效,可以在百度云盘中下载,也是从官网下载的,如不放心,可自行在别出现在。

配置JDK环境

[root@jenkins opt]# pwd
/opt
[root@jenkins opt]# ls -ld jdk-8u191-linux-i586.tar.gz
-rw-r--r-- 1 root root 194712017 Dec 4 15:06 jdk-8u191-linux-i586.tar.gz
[root@jenkins opt]# tar xf jdk-8u191-linux-i586.tar.gz
[root@jenkins opt]# ls jdk1.8.0_191/
bin COPYRIGHT include javafx-src.zip jre lib LICENSE man README.html release src.zip THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt

配置环境变量:

[root@jenkins opt]# tail -3 /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
[root@jenkins opt]# source /etc/profile
[root@jenkins opt]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) Server VM (build 25.191-b12, mixed mode)

安装私服 Nexus

首先下载好nexus安装包,然后安装

[root@jenkins opt]# ls -ld nexus-3.14.0-04-unix.tar.gz
-rw-r--r-- 1 root root 125423547 Dec 3 14:34 nexus-3.14.0-04-unix.tar.gz
[root@jenkins opt]# tar xf nexus-3.14.0-04-unix.tar.gz
[root@jenkins opt]# ls -ld nexus-3.14.0-04 sonatype-work/
drwxr-xr-x 9 root root 4096 Dec 4 16:58 nexus-3.14.0-04
drwxr-xr-x 3 root root 4096 Dec 4 16:58 sonatype-work/
[root@jenkins opt]# mv nexus-3.14.0-04 nexus3

这样就安装完成了

启动私服 Nexus

[root@jenkins opt]# cd nexus3/
[root@jenkins nexus3]# ls
bin deploy etc lib NOTICE.txt OSS-LICENSE.txt PRO-LICENSE.txt public system
[root@jenkins nexus3]# ./bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
[root@jenkins nexus3]# netstat -lntup | grep 8081
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 3097/java

Nexus 默认web端口是8081,这样通过ip+端口就可以访问了,默认用户:admin,密码:admin123

这样就完成了Nexus部署


安装 Maven

下载好对应的Maven安装包

[root@jenkins opt]# ls apache-maven-3.6.0-bin.tar.gz  -ld
-rw-r--r-- 1 root root 9063587 Oct 25 03:20 apache-maven-3.6.0-bin.tar.gz
[root@jenkins opt]# tar xf apache-maven-3.6.0-bin.tar.gz
[root@jenkins opt]# mv apache-maven-3.6.0 maven3
[root@jenkins opt]# ls maven3/
bin boot conf lib LICENSE NOTICE README.txt

配置环境变量

[root@jenkins opt]# tail -3 /etc/profile
# maven export
export M2_HOME=/opt/maven3
export PATH=${M2_HOME}/bin:$PATH
[root@jenkins opt]# source /etc/profile
[root@jenkins opt]# mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T14:41:47-04:00)
Maven home: /opt/maven3
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /opt/jdk1.8.0_191/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.9-1.el7.elrepo.x86_64", arch: "i386", family: "unix"

配置 Maven 连接 私服 Nexus

这里需要修改/opt/maven3/conf/settings.xml 配置文件,把settings.xml文件中的mirrors修改为Nexus私服地址

[root@jenkins opt]# cd maven3/conf/
[root@jenkins conf]# ls
logging settings.xml toolchains.xml
[root@jenkins conf]# head -160 settings.xml | tail -15
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
-->
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://172.20.0.50:8081/nexus/content/groups/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</mirrors>

主要是修改url标签中的地址路径即可,这样在jenkins自动构建时项目中的jar包等,会自动从改地址中下载

完成。


安装 Jenkins

Jenkins 有两种安装方式

  • 一种为rpm包安装,也可以使用yum安装,效果相同
  • 一种是WAR包方式安装,需要使用tomcat

rpm 包安装方式

下载好列表中的rpm包安装方是的jenkins包后

[root@jenkins opt]# ls -ld jenkins-2.138.3-1.1.noarch.rpm
-rw-r--r-- 1 root root 75541986 Nov 9 09:26 jenkins-2.138.3-1.1.noarch.rpm
[root@jenkins opt]# rpm -ivh jenkins-2.138.3-1.1.noarch.rpm
warning: jenkins-2.138.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jenkins-2.138.3-1.1 ################################# [100%]
[root@jenkins opt]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

主配置文件是 /etc/sysconfig/jenkins ,可以修改其中的一些参数,如JENKINS_PORT端口,JENKINS_LISTEN_ADDRESS监听地址等

安装好后不能直接启动,启动会有如下效果:

[root@jenkins opt]# systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[root@jenkins opt]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2018-12-04 16:03:24 CST; 4s ago
Docs: man:systemd-sysv-generator(8)
Process: 1551 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE) Dec 04 16:03:24 jenkins systemd[1]: Starting LSB: Jenkins Automation Server...
Dec 04 16:03:24 jenkins runuser[1556]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Dec 04 16:03:24 jenkins jenkins[1551]: Starting Jenkins bash: /usr/bin/java: No such file or directory
Dec 04 16:03:24 jenkins runuser[1556]: pam_unix(runuser:session): session closed for user jenkins
Dec 04 16:03:24 jenkins jenkins[1551]: [FAILED]
Dec 04 16:03:24 jenkins systemd[1]: jenkins.service: control process exited, code=exited status=1
Dec 04 16:03:24 jenkins systemd[1]: Failed to start LSB: Jenkins Automation Server.
Dec 04 16:03:24 jenkins systemd[1]: Unit jenkins.service entered failed state.
Dec 04 16:03:24 jenkins systemd[1]: jenkins.service failed.

上面报错的提示意思是没有找到JDK环境,需要在启动脚本中增加JDK环境变量即可,操作如下:

[root@jenkins opt]# head -74 /etc/rc.d/init.d/jenkins  | tail -9
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/opt/jdk1.8.0_191/bin/java
"
[root@jenkins opt]# systemctl daemon-reload

candidates变量中最后一行,要在双引号内的最后一行,加入JDK环境变量,我的是/opt/jdk1.8.0_191/bin/java,最后重新加载一下即可;

这样再次启动:

[root@jenkins opt]# systemctl start jenkins
[root@jenkins opt]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (running) since Tue 2018-12-04 16:16:01 CST; 3s ago
Docs: man:systemd-sysv-generator(8)
Process: 1616 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/jenkins.service
└─1640 /opt/jdk1.8.0_191/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/l... Dec 04 16:16:01 jenkins systemd[1]: Starting LSB: Jenkins Automation Server...
Dec 04 16:16:01 jenkins runuser[1621]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
Dec 04 16:16:01 jenkins runuser[1621]: pam_unix(runuser:session): session closed for user jenkins
Dec 04 16:16:01 jenkins jenkins[1616]: Starting Jenkins [ OK ]
Dec 04 16:16:01 jenkins systemd[1]: Started LSB: Jenkins Automation Server.
[root@jenkins opt]# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 1640/java

新版本的jenkins为了保证安全,在安装之后有一个锁,需要设置密码之后才可以解锁

此信息会在日志中体现,rpm包安装的jenkins日志默认在/var/log/jenkins/jenkins.log

[root@jenkins opt]# grep This /var/log/jenkins/jenkins.log
This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
[root@jenkins opt]# cat /var/lib/jenkins/secrets/initialAdminPassword
8dc2857b96124813953b6b79251a2fe4

这个密码等下在页面验证中使用

默认监听的8080端口,此时就可以使用浏览器进行访问了

访问后可以看到提示,输入刚刚查看的密码即可登录;


WAR 包安装方式

WAR包安装方式简单一些,部署好tomcat后,把WAR包放到webapps目录下,即可

[root@jenkins opt]# ls apache-tomcat-8.5.35.tar.gz -ld
-rw-r--r-- 1 root root 9642757 Dec 4 15:02 apache-tomcat-8.5.35.tar.gz
[root@jenkins opt]# tar xf apache-tomcat-8.5.35.tar.gz
[root@jenkins opt]# mv apache-tomcat-8.5.35 tomcat8
[root@jenkins opt]# ls -ld jenkins.war
-rw-r--r-- 1 root root 75733340 Dec 3 15:56 jenkins.war
[root@jenkins opt]# cd tomcat8/
[root@jenkins tomcat8]# ls
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work
[root@jenkins tomcat8]# cd webapps/
[root@jenkins webapps]# ls
docs examples host-manager manager ROOT
[root@jenkins webapps]# rm -rf *
[root@jenkins webapps]# mv /opt/jenkins.war .
[root@jenkins webapps]# ll
total 73960
-rw-r--r-- 1 root root 75733340 Dec 3 15:56 jenkins.war

这样就可以了,然后启动tomcat

[root@jenkins webapps]# ../bin/catalina.sh  start
Using CATALINA_BASE: /opt/tomcat8
Using CATALINA_HOME: /opt/tomcat8
Using CATALINA_TMPDIR: /opt/tomcat8/temp
Using JRE_HOME: /opt/jdk1.8.0_191/jre
Using CLASSPATH: /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@jenkins webapps]# tailf ../logs/catalina.out
04-Dec-2018 03:28:01.009 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat8/temp
04-Dec-2018 03:28:01.009 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/i386:/lib:/usr/lib]
04-Dec-2018 03:28:01.100 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
04-Dec-2018 03:28:01.108 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
04-Dec-2018 03:28:01.116 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
04-Dec-2018 03:28:01.116 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
04-Dec-2018 03:28:01.122 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 407 ms
04-Dec-2018 03:28:01.137 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
04-Dec-2018 03:28:01.137 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.35
04-Dec-2018 03:28:01.150 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/tomcat8/webapps/jenkins.war]
04-Dec-2018 03:28:04.464 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
04-Dec-2018 03:28:04.927 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat8/webapps/jenkins.war] has finished in [3,774] ms
04-Dec-2018 03:28:04.931 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Dec-2018 03:28:04.951 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
04-Dec-2018 03:28:04.956 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3833 ms
04-Dec-2018 03:28:06.078 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Started initialization
04-Dec-2018 03:28:06.101 INFO [pool-6-thread-8] jenkins.InitReactorRunner$1.onAttained Listed all plugins
04-Dec-2018 03:28:07.122 INFO [pool-6-thread-7] jenkins.InitReactorRunner$1.onAttained Prepared all plugins
04-Dec-2018 03:28:07.201 INFO [pool-6-thread-3] jenkins.InitReactorRunner$1.onAttained Started all plugins
04-Dec-2018 03:28:07.204 INFO [pool-6-thread-5] jenkins.InitReactorRunner$1.onAttained Augmented all extensions
04-Dec-2018 03:28:07.968 INFO [pool-6-thread-1] jenkins.InitReactorRunner$1.onAttained Loaded all jobs
04-Dec-2018 03:28:07.985 INFO [Download metadata thread] hudson.model.AsyncPeriodicWork$1.run Started Download metadata
04-Dec-2018 03:28:08.617 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@7fc855: display name [Root WebApplicationContext]; startup date [Tue Dec 04 03:28:08 EST 2018]; root of context hierarchy
04-Dec-2018 03:28:08.618 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@7fc855]: org.springframework.beans.factory.support.DefaultListableBeanFactory@16796f2
04-Dec-2018 03:28:08.630 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@16796f2: defining beans [authenticationManager]; root of factory hierarchy
04-Dec-2018 03:28:08.804 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.prepareRefresh Refreshing org.springframework.web.context.support.StaticWebApplicationContext@1c0b9e5: display name [Root WebApplicationContext]; startup date [Tue Dec 04 03:28:08 EST 2018]; root of context hierarchy
04-Dec-2018 03:28:08.804 INFO [Finalizing set up] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@1c0b9e5]: org.springframework.beans.factory.support.DefaultListableBeanFactory@18bcbb
04-Dec-2018 03:28:08.804 INFO [Finalizing set up] org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@18bcbb: defining beans [filter,legacy]; root of factory hierarchy
04-Dec-2018 03:28:08.968 INFO [Finalizing set up] jenkins.install.SetupWizard.init *************************************************************
*************************************************************
************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation: 7fa6a37fa7cc421f929c6f5ea19c16aa This may also be found at: /root/.jenkins/secrets/initialAdminPassword *************************************************************
*************************************************************
*************************************************************

可以看到启动成功最后,同样输出了Password信息

这样就和使用RPM最后打开的页面操作相同了。


Jenkins 配置

在上面操作登陆后进入下面界面,选择安装推荐的插件

然后进入到设置管理员账号密码的页面

下载 Maven 插件

因为需要构建的是Java的Maven项目,所有需要安装一个Maven插件,插件名为: Maven Integration

点击系统管理--> 再点击插件管理

然后点击可选插件,过滤 Maven Integration 名称

选中要筛选出来要安装的插件,点击直接安装

当插件安装完成后,会提示 完成

配置 Jenkins 中的 JDK 和 Maven

进入到:系统管理 --> 全局工具配置

最后点击保存即可


Jenkins 构建项目

创建 Maven 项目

需要先创建一个新建任务,选择maven,然后点击确认

设置构建的参数

首先设置保存构建天数和最大构建数

根据实际情况设置

配置SVN

可以使用SVN、GitLab、GitHub都可以

然后填写SVN的用户密码,一定要有r权限,否则在拉取代码就会报错。

配置构建参数和shell脚本

构建参数需要与开发协同合作

Shell脚本一般用于配合上线,因为Jenkins构建后,只是会生成WAR包,需要使用shell来进行推送上线

最后应用保存即可

这是就能看到刚刚创建的项目了

jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]的更多相关文章

  1. Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

    详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...

  2. Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器

    今天请教了大神,终于把jenkins给搞明白了 现在做下笔记,防止自己老年痴呆又忘了怎么配置 (截图可能不够清晰,有不清楚的随时评论打call) 机器配置: 安装配置规划 机器 192.168.169 ...

  3. jenkins+Maven从SVN上构建项目

    一.安装Maven 下载地址:https://maven.apache.org/download.cgi 把下载的安装包解压 tar -xvf apache-maven--bin.tar.gz 配置环 ...

  4. Jenkins+Maven+Gitlab+Nexus持续集成环境搭建

      1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...

  5. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  6. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)

    前言     但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...

  7. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  8. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  9. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...

随机推荐

  1. 自闭枪战C++

    Player1: ad左右移动,w跳,jk发射子弹 Player2: 左右键左右移动,上键跳,23发射子弹 #include <bits/stdc++.h> #include <co ...

  2. csps模拟测试110

    好久没写博客了,主要是太懒了,这次考试其实状态还算好. 考试的时候半小时左右打完T1T2,先没打T2对拍,想了想T3,大概有了一个bitset的思路,回去补上了T2的对拍. 然后T3想了一些东西: 三 ...

  3. 小白学 Python(19):基础异常处理

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 用python实现你的绘画梦想

    导语: ​ 你是否还在为当时年少时没有选择自己的梦想而伤心,是否还在为自己的无法成为绘画名家而苦恼,这一切都不需要担心.python都能帮你实现,诶!python怎么能画画呢,一些简单的图案没问题,但 ...

  5. Vue+element UI实现表格数据导出Excel组件

    介绍 这是一个可以将页面中的表格数据导出为Excel文件的功能组件,该组件一般与表格一起使用,将表格数据传给组件,然后通过点击组件按钮可将表格中的数据导出成Excel文件. 使用方法 由于封装该组件内 ...

  6. TRANK和VTP

    需求:因为公司规模逐渐扩大,出现相同部门不同办公室的情况,老板提出新的要求:相同部门可以通信,不同部门不能通信. 利用vlan: 缺点:浪费材料,应用技术手段把两条交叉线变成一条. 因此,引进trun ...

  7. python模块——socket

    实例一. server: #socket套接字(IP + 端口号)(qq,wechat 发送接收消息依靠socket模块),cs架构import socketserver = socket.socke ...

  8. PHP读取Excel内的图片

    今天接到了一个从Excel内读取图片的需求,在网上查找了一些资料,基本实现了自己的需求,不过由于查到的一些代码比较久远,不能直接移植到自己的项目里,需要稍加改动一下. 这里介绍一下分别使用phpspr ...

  9. 架构设计:"4+1"视图

    概念 "4+1"视图,是指从5个不同视角来描述软件体系结构. "4+1"分别指: 逻辑视图 过程视图 物理视图 开发视图 场景/用例 视图 逻辑架构的描述可以围 ...

  10. gitbook的插件配置

    原生的gitbook样式比较单一,美观度和功能欠佳,可通过相关插件进行拓展. 插件地址:https://plugins.gitbook.com/ 主目录下新建book.json: { "au ...