svn + jenkins + maven 实现java环境的自动化构建和部署
1. 环境说明:
系统CentOS 7 x64
IP: 10.6.0.126
1.1 首先安装配置 svn
Centos 7 通过yum 安装svn 既可, 版本为1.7.14
# yum -y install subversion
安装完毕以后查看版本信息
# svnserve --version
添加svn运行用户
groupadd svn
useradd -g svn -s /sbin/nologin svn
添加svn版本库目录,并授权svn用户权限
mkdir -p /opt/svndata
chown -R svn.svn /opt/svndata
创建svn版本库
svnadmin create /opt/svndata/jicki
cd /opt/svndata/jicki/conf
.
├── authz svn认证文件
├── passwd svn用户文件
└── svnserve.conf svn配置文件
启动svn
svnserve -d -r /opt/svndata/
1.2 部署Jenkins
首先安装jdk 7 官网下载jdk7最新版本
rpm -ivh jdk-7u71-linux-x64.rpm
安装完成以后...安装目录为 /usr/java/jdk1.7.0_71/
接下来配置一下JDK的环境..
vi /etc/profile
在最下面添加三行
export JAVA_HOME=/usr/java/jdk1.7.0_71/
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export LASSPATH=.:/usr/java/jdk1.7.0_71/lib:/usr/java/jdk1.7.0_71/jre/lib:$CLASSPATH
使用设置生效
source /etc/profile
接下来就是安装 tomcat 了
http://tomcat.apache.org/index.html
下载最新稳定版的tomcat版本
tar zxvf apache-tomcat-7.0.57.tar.gz
mv apache-tomcat-7.0.57 /opt/local/tomcat
cd /opt/local/tomcat
vi /etc/profile
最下面添加
export TOMCAT_HOME=/opt/local/tomcat/
使设置生效
source /etc/profile
下面下载Jenkins
官网地址 http://jenkins-ci.org/
http://mirrors.jenkins-ci.org/war/latest/jenkins.war 下载最新版本
mv jenkins.war /opt/local/tomcat/webapps/
启动tomcat
/opt/local/tomcat/bin/startup.sh
http://10.6.0.126:8080/jenkins/
既可访问 jenkins
1.3 部署maven
下载地址:http://maven.apache.org/download.cgi
tar zxvf apache-maven-3.2.5-bin.tar.gz
mv apache-maven-3.2.5 /opt/local/maven
vi /etc/profile
最下面添加
export MAVEN_HOME=/opt/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
使设置生效
source /etc/profile
查看是否安装成功
mvn -v
1.4 java环境自动构建部署
新建一个job



( Jenkins needs to know where your Maven2 is installed. Please do so from the system configuration. )
是因为Jenkins找不到maven的原因,点击"system configuration",是system configuration的maven配置中添加maven目录就OK。
1.5 利用maven命令创建web项目
命令格式:mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
/opt/webapp
mvn archetype:generate -DgroupId=com.myweb -DartifactId=mywebapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
执行完毕会生成 mywebapp目录
目录结构如下
.
├── pom.xml
└── src
└── main
├── resources
└── webapp
├── index.jsp
└── WEB-INF
└── web.xml
进入mywebapp目录
cd /opt/webapp/mywebapp/
执行构建
mvn install
构建完成会生成一个target 目录
.
├── pom.xml
├── src
│ └── main
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── target
├── classes
├── maven-archiver
│ └── pom.properties
├── mywebapp
│ ├── index.jsp
│ ├── META-INF
│ └── WEB-INF
│ ├── classes
│ └── web.xml
└── mywebapp.war
svn + jenkins + maven 实现java环境的自动化构建和部署的更多相关文章
- 使用Docker搭建Jenkins+Docker持续集成环境(自动化构建发布部署)
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...
- Jenkins+Maven+Git CI环境搭建手册
Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...
- SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战
1.前言与初衷 本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用. 本文章会涉及结合工作过程中部署不同环境服务器的项目案例场景为初心进行实际细讲. 本文章主要讲述Docker.Jen ...
- 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(上)
写在前面 写这篇文章的缘由是由于笔者的对新兴技术方向有所追求,但个人资产有限,只能容许购买一台阿里云低配1核2G服务器.服务器上搭建了 Centos7 & Docker & Jenki ...
- GeneXus DevOps 自动化构建和部署流程
以下视频详细介绍了GeneXus DevOps自动化构建和部署流程,包括通过MS Bulid来管理自动化流程,自动化的架构,以及在GeneXus Server上使用Jenkins做为自动化引擎. 视频 ...
- 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)
写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...
- Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自动化发布和部署
写在前面 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级 ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
随机推荐
- SCP测试服务器的上行/下行带宽
SCP测试服务器的上行/下行带宽,这个咋弄呢?有时间再研究一下.
- C++字符串(1)
C++ 拼接字符串常量 C++允许拼接字符串字面值,即将两个用引号括起的字符串合并为一个.事实上,任何两个由空白(空格,制表符和换行符)分隔的字符串常量都将自动拼接成一个. 例子: cout < ...
- OpenGL------显示列表
我们已经知道,使用OpenGL其实只要调用一系列的OpenGL函数就可以了.然而,这种方式在一些时候可能导致问题.比如某个画面中,使用了数千个多边形来表现一个比较真实的人物,OpenGL为了产生这数千 ...
- SwiftDate 浅析
SwiftDate是Github上开源的,使用Swift语言编写的NSDate封装库,可以很方便的在Swift中处理日期,比如日期创建,比较,输出等. 特性 支持数学运算符进行日期计算(比如myDat ...
- android上的JAVA8:使用retrolambda
android上的JAVA8:使用retrolambda posted by juuda 2015年6月3日 下午7:33 under Android Java8引入了lambda表达式,让许多开发者 ...
- android 检测是否插入U盘方法之一
本方法是检测文件/proc/partitions. import java.io.*; File Usbfile = new File("/proc/partitions");if ...
- Android中购物车的全选、反选、问题和计算价格
此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //- ...
- ios 概况了解
iOS的系统架构分为四个层次:( iOS是基于UNIX内核,android是基于Linux内核) 核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒 ...
- 剑指offer之有序二维数组查找
大多数人注意到元素是行列有序的,会马上想到对每行(或列)进行二分查找,每行(或列)需要logN时间,N行(或列)共需要NlogN时间,很容易写出如下代码 1 2 3 4 5 6 7 8 9 10 11 ...
- js中的整型都是用double存储的,有时候不精确,如,
sss=187948800449444864 187948800449444860 好像16位的时候还可以. http://segmentfault.com/a/1190000002608050