设为首页 收藏本站
查看: 1037|回复: 0

[经验分享] 利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(一)(网内首发超详细版)

[复制链接]

尚未签到

发表于 2018-9-4 11:38:05 | 显示全部楼层 |阅读模式
  目录结构如下:
  目录
  1说明及环境介绍3
  1.1说明3
  1.2环境准备及格式约定4
  2 Linux下apache搭建svn服务器4
  2.1 apache安装部署4
  2.2 svn安装部署5
  2.3整合svn和apache6
  2.4 ssl方式部署apache7
  2.4.1安装apache7
  2.4.2安装svn7
  2.4.2 部署认证8
  3 Linux下svn独立服务器方式部署9
  3.1安装SVN9
  3.2 配置环境10
  3.3 权限配置样例11
  3.4 启动SVN服务器12
  3.5 访问方式12
  3.6 开启防火墙SVN端口12
  4 yum方式快速部署apache和svn13
  5 Jenkins部署方法13
  5.1 Jenkins部署方法一13
  5.2 Jenkins部署方法二14
  6安装maven15
  7 java环境自动构建部署16
  7.1 新建job16
  7.2利用maven命令创建web项目16
  8 Subversion FAQ19
  8.1 官方FAQ网址19
  8.2 svn遇到错误总结19
  8.2.1 svn不显示日志19
  8.2.2 版本冲突问题19
  8.2.3 svnadmin报错19
  9 apache FAQ20

  9.1 Could not>  9.2 svn客户端提交文件失败20
  9.3无法访问版本库40320
1说明及环境介绍
1.1说明
  以下将采用apache+svn+Jenkins+maven部署一套易于java环境快速开发的版本控制及自动构建系统。以2者相结合的方式进行快速开发。
  在所有的Subversion服务器配置方式中,基于Apache的是最灵活的。虽然配置起来有一点点复杂,但是它提供了其它方式所没有的好处:
  WebDAV
  基于Apache配置的Subversion服务器使用了被许多其它程序支持的WebDAV协议。举个例子,你可以在Windows的资源管理器中将这样的一个版本库挂载成一个“Webfolder”,然后像文件系统中的其它文件夹一样访问它。
  浏览版本库
  你可以在不安装Subversion客户端的情况下,使用浏览器来浏览版本库中的内容。这将使得更大范围的用户可以访问你的数据。
  用户验证
  你可以使用任何Apache支持的验证机制,包括SSPI和LDAP。
  安全
  Apache是非常的稳定和安全,因此你的版本库自然而然地拥有同样的安全性。包括SSL加密。
  Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能
  Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:
  1)持续的软件版本发布/测试项目。
  2)监控外部调用执行的工作。
  Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用
  Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制 项目。
  绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者、版本或站点主页)。
  Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
1.2环境准备及格式约定
  系统:centos5.9 x64
  Apache+svn:192.168.1.19
  Jenkins+maven:192.168.1.20
  下载所需软件
  apache下载地址:http://www.apache.org/
  wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
  wget http://labs.mop.com/apache-mirror/subversion/subversion-1.7.8.tar.gz
  wget http://archive.apache.org/dist/apr/apr-util-1.5.1.tar.gz
  wget http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz
  wget http://www.sqlite.org/sqlite-amalgamation-3071502.zip
  环境清理
  系统在默认情况下,是已经有apr-util及apr这两个包的,只不过他们的版本较低,只支持subversion 1.4
  因此,具体可以看看:
  yum -y remove subversion或者yum erase subversion
  查看默认安装
  # rpm -qa | grep apr
  而subversion要求较高的版本,为此,我们需要删除系统自带的apr,apr-util这两个包!强行删掉!
  # rpm -e --allmatches apr-util
  # rpm -e --allmatches apr-util --nodeps
  # rpm -e --allmatches apr --nodeps
  默认安装svn-1.61版本
  rm -rf /usr/bin/svn* (不删除环境变量不生效)
  格式约定
  一级标题:黑体四号
  二级标题:黑体四号
  三级标题:黑体小四
  正文:5号楷体
  注释及注意:深红5号楷体
2 Linux下apache搭建svn服务器
2.1 apache安装部署
  安装openssl(非必须,可以使用默认openssl)
  wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
  tar zxvf openssl-1.0.1g.tar.gz
  cd openssl-1.0.0g
  make && make install
  cp /usr/local/ssl/bin/openssl /usr/bin/          #覆盖系统默认的openssl命令
  openssl version                      #查看openssl版本
  安装apache
  tar -xzvf httpd-2.2.19.tar.gz
  cd httpd-2.2.19
  ./configure --prefix=/usr/local/apache2 --enable-dav --enable-so --enable-mods-shared=all
  make && make install
2.2 svn安装部署
  安装svn相关软件包
  tar -xzvf apr-1.4.6.tar.gz
  cd apr-1.4.6
  ./configure --prefix=/usr/local/apr
  make && make install
  tar -xzvf  apr-util-1.5.1.tar.gz
  cd apr-util-1.5.1
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  make && make install
  echo "/usr/local/apr/lib/" >> /etc/ld.so.conf
  ldconfig
  tar -xzvf neon-0.29.6.tar.gz
  cd neon-0.29.6
  ./configure --prefix=/usr/local/neon
  make && make install
  echo "/usr/local/neon/lib" >> /etc/ld.so.conf
  ldconfig
  unzip sqlite-amalgamation-3071502.zip
  tar -xzvf subversion-1.7.8.tar.gz
  mv sqlite-amalgamation-3071502 ./subversion-1.7.8/sqlite-amalgamation
  cd subversion-1.7.8
  ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-db --with-ssl
  make && make install
  验证svn安装是否成功,如果报错请看错误章节
  /usr/local/svn/bin/svnserve --version
  添加svn用户
  groupadd svn
  useradd -g svn -s /sbin/nologin svn
  添加SVN版本库目录,并赋予SVN用户权限
  mkdir -p /data/svndata
  chown -R svn.svn /data/svndata
  创建版本库
  /usr/local/svn/bin/svnadmin create  /data/svndata/fengwang
  注:svn默认数据存储类型为--fs-type fsfs 可以自己选择,建议用默认方式。
  详见:http://www.blogjava.net/jasmine214--love/archive/2011/01/18/343160.html
  添加svn用户
  /usr/local/apache2/bin/htpasswd -bc /usr/local/svn/conf/svnusers.conf svntest 123456
  添加svn认证文件
  cat >> /usr/local/svn/conf/authz.conf

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-562448-1-1.html 上篇帖子: 基于jenkins结合git实现web程序的多服务器批量发布 下篇帖子: 利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(二)(网内首发超详细版)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表