jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]
目录
- 介绍
- DevOps平台四大模块
- 针对DevOps开源项目
- Jenkins 介绍
- Maven 介绍
- maven的核心概念介绍
- SVN介绍
- Nexus介绍
- Maven私服的 个特性:
- 流程图
- 环境搭建
- 环境准备
- 配置JDK环境
- 安装私服 Nexus
- 安装 Maven
- 配置 Maven 连接 私服 Nexus
- 安装 Jenkins
- rpm 包安装方式
- WAR 包安装方式
- Jenkins 配置
- 下载 Maven 插件
- 配置 Jenkins 中的 JDK 和 Maven
- Jenkins 构建项目
- 创建 Maven 项目
- 设置构建的参数
- 配置SVN
- 配置构建参数和shell脚本
介绍
DevOps是“开发”和“运维”的缩写。
DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通,强调整个组织的合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付
DevOps平台四大模块
- 项目管理 (创建项目--->>项目需求)
- 运维平台 (监控--日志收集---等)
- 持续交付 (提交完代码--->自动打包--->构建)
- 代码托管 (gitlab---->代码提交)
————————————————————>>DevOps平台
针对DevOps开源项目
- 项目管理---(JIRA非开源但是用的人比较多)、(Redmine使用ruby写的)
- 代码托管---(SVN--usvn有web管理界面)、(GitLab)
- 持续交付---(主流Jenkins)、(GitLab gitlab-ci也可以做交付)
- 运维平台---(国内的开源运维平台可能就是腾讯蓝鲸)
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的仓库只有两大类:
- 本地仓库
- 远程仓库
在远程仓库中又分成了3种:
- 中央仓库
- 私服
- 其它公共库。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
Maven私服的 个特性:
- 节省自己的外网带宽:减少重复请求造成的外网带宽消耗
- 加速Maven构件:如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低
- 部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用
- 提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能
- 降低中央仓库的负荷: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 ServerLoaded: 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 agoDocs: 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 ServerLoaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)Active: active (running) since Tue 2018-12-04 16:16:01 CST; 3s agoDocs: 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:7fa6a37fa7cc421f929c6f5ea19c16aaThis 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来进行推送上线
最后应用保存即可
这是就能看到刚刚创建的项目了
转载于:https://www.cnblogs.com/winstom/p/10064575.html
jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]相关推荐
- Maven + Nexus + SVN + Eclipse 配置步骤说明
一.软件及环境 1. 软件 1.1 jdk-6u11-windows-i586-p.exe 1.2 eclipse-jee-indigo-SR2-win32.zip 1.3 nexus- ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- jenkins+maven+gitlab+harbor+k8s的 CI/CD
安装k8s jenkins maven gitlab harbor 过程略过~ 记得在jenkins机器上yum个git就好,因为需要git去连我们的代码库, 做这套的时候踩过的坑,提醒大家 只写 ...
- Svn、Git、GitHub、GitLab、码云 区别
一.吐槽个黑历史 git诞生: git 由Linus Linus花了两周时间自己用C写了一个分布式版本控制系统,在2008 正式上线.(这里和Linux有一段黑历史). github: github代 ...
- Jenkins+maven+SVN构建java项目中遇到的问题及解决
Jenkins+maven+SVN构建java项目中遇到的问题及解决 参考文章: (1)Jenkins+maven+SVN构建java项目中遇到的问题及解决 (2)https://www.cnblog ...
- Jenkins集合git、maven,持续集成gitlab项目(二)
在第一部分上一次写的集成文档中中Jenkins是可以主动拉取GitLab 代码或者定时拉取代码,进行构建:第二部分是为了向 GitLab push 代码,或执行其它一些操作时,GitLab 可以将这些 ...
- 一起学CICD 04.gitlab+jenkins+maven简单构建
gitlab+jenkins+maven简单构建 环境 192.168.48.52 gitlab 192.168.48.53 jenkins maven gitlab设置 创建一个组 创建一个用户 编 ...
- Jenkins maven自动发布配置
说明: jenkins maven svn实现自动编译及自动发布,svn也可以切换成git,看自己需要!之前也配置过几次,都没有做记录,后面再次配置很多忘记了,又得网上找资料,发现网上的资料很多 ...
- Jenkins +maven+tomcat自动构建部署(学习笔记三十六)
https://my.oschina.net/denglz/blog/524154 摘要: jenkins + maven + svn + tomcat 自动部署 jenkins 是做什么用的,如果 ...
最新文章
- 动态规划 53:Maximum Subarray,152:Maximum Subarray,266. Palindrome Permutation 回文全排列...
- 面向对象中的修饰关键词
- java中级职称考试试题_Java中级开发工程师笔试题及答案2016
- Convert Sorted Array to Binary Search Tree With Minimal Height
- mysql innodb trx_如何区分MySQL的innodb_flush_log_at_trx_commit和sync_binlog
- LC-871 最小加油次数
- ASIHttpRequest没更新,MKNetWorKit更优越
- android游戏源码 2048,Android实现2048小游戏
- 期货反向跟单靠谱吗?
- 中小学线上教学平台让孩子轻松学,大屏教育软件打造居家小课堂
- 手机卡服务器密码忘记了怎么修改密码,wifi密码忘记了怎么办找回密码 手机怎么修改自家wifi密码...
- ADDS:卸载/降级域控制器
- Android 飞机大战
- NEUQ 1022:二叉树
- ERP一般实施流程/步骤
- codecombat之边远地区的森林12-22关及地牢39关代码分享
- AICOIN去中心化金融的破界与重构
- 微信公众号php发送图片素材,php版微信公众号接口实现发红包的方法
- 正大期货新闻:乌拉尔原油售价贴水程度创多年最大
- Python 实现Ping命令状态检测
热门文章
- hadoop namenode启动不了_hadoop全分布式是个什么鬼?!动手搭建Hadoop(4)
- OpenCV-图像处理(25、直方图比较)
- html全屏代码怎么写,JS实现全屏的四种写法
- ios android c跨平台,Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)...
- webdriver 等待页面加载完成_Python+selenium自动化之等待
- php对接海康视频教程_手把手教你php对接海康api
- python入门之运算符的使用第一关_python基础教程之python 学习第四天|python基础教程|python入门|python教程...
- android实现标题栏弹框,Android:Dialog对话框、Builder、showDialog、模板方法设计模式...
- 保山一中2021高考成绩查询,云南省保山第一中学
- 有关古文的C语言编程题,文言文考试也编程,文言语言!!!(附c/c++自译)