持续集成(CI)是一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。
jdk下载地址: http://www.oracle.com/technetwork/java/archive-139210.html
1
|
tar xf jdk-8u112-linux-x64.tar.gz -C /usr/local/
|
配置jdk环境变量
vim /etc/profile
1
2
3
|
export JAVA_HOME=/usr/local/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/jre/lib/
export PATH=$JAVA_HOME/bin:$PATH
|
1
2
3
|
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
yum install jenkins
|
添加java路径到jenkins启动脚本中
vim /etc/init.d/jenkins
1
|
/usr/local/jdk1.8.0_112/bin/java
|
1
2
|
/etc/init.d/jenkins start
chkconfig --level 35 jenkins on
|
访问路径 http://192.168.6.102:8080
默认密码存在这个文件中 /var/lib/jenkins/secrets/initialAdminPassword
创建一个管理用户
点击系统配置-Global Tool Configuration
针对项目中使用的jdk和maven情况添加对应的版本
此插件用于发布静态网站,拷贝文件很方便
配置需要发布的服务器hostname,端口,路径,用户名,密码(如果是正式环境,不建议使用root用户)
ps:这里有个小技巧,如果这台机器上有多个静态网站目录的话,可以在服务器设置多个hosts记录,这里使用主机名来分区不同的路径
源码管理:
填写svn路径
有获取代码权限的用户名密码
构建后操作:
选择需要scp的路径
Source ** 表示所有
Keep Hierarchy 保持目录结构(否则不能拷贝文件夹)
点击立即构建
通过 Console Output可以看到详细日志
至此,一个静态网站就发布完成了!
此插件可以将war/ear 包发布到tomcat,glassfish,jetty,weblogic等中间件上
vim /usr/local/apache-tomcat-7.0.77/conf/tomcat-users.xml
1
2
3
4
5
6
|
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui"/>
<role rolename="manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
|
由于jenkins把8080端口占用,我这里修改tomcat端口为8081
vim /usr/local/apache-tomcat-7.0.77/conf/server.xml
1
|
<Connector port="8081" protocol="HTTP/1.1"
|
https://github.com/nsxq/hello-world-war
查看版本
1
|
mvn -version
|
查看详细信息
1
|
mvn X
|
测试
1
|
mvn test
|
清理(target目录下的编译内容)
1
|
mvn clean
|
编译项目
1
|
mvn compile
|
打包发布
1
|
mvn package
|
生成eclipse项目文件
1
|
mvn eclipse:eclipse
|
产生site
1
|
mvn site
|
安装当前工程的jar安装到本地仓库
1
|
mvn install
|
安装jar包到本地仓库
1
|
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=/usr/local/src/ojdbc14-10.2.0.4.0.jar
|
分析项目的依赖信息
1
|
mvn dependency:analyze / mvn dependency:tree
|
获取代码
编译参数
构建后发布
点击立即构建
查看日志,已经发布完成了
访问项目
http://192.168.6.102:8081/hello
至此,一个maven工程已经实现自动化编译、打包、发布!
有时候发布一个新版本失败或发布有问题,我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署。我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是退
让后面的脚步可以根据不同的变量执行不同的操作。添加“Choice”参数配置不同的选项,让选择发布还是回滚,添加“String Parameter”参数来传递要回退的版本号。
自己根据变量,自定义构建的脚本,此时如果是发布安装maven的构建过程进行新的构建,如果是回滚,知道历史构建后的文件,复制到当前构建结果目录。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
case $deploy_env in
deploy)
echo "deploy:$deploy_env"
mvn clean test compile install package
;;
rollback)
echo "rollback:$deploy_env"
echo "version: $version"
rm -fr target/hello-1.war
cp -R ${JENKINS_HOME}/jobs/myapp/builds/${version}/com.efsavage\$hello/archive/com.efsavage/hello/1/hello-1.war .
pwd && ls
;;
*)
exit
;;
esac
|
点击构建,根据不同的参数选择发布还是版本回退,回退的时候填写要回退到的历史版本号
PS: Tomcat8配置web管理后,Tomcat访问 manager页面 报403的解决办法:https://blog.52itstyle.com/archives/274/
linux技术交流群:295294329