当前位置:首页 » 编程软件 » svn自动下载自动编译

svn自动下载自动编译

发布时间: 2022-02-13 06:49:13

‘壹’ 公司想实现持续集成,对svn上的项目自动编译,但怎样的情况是合适的,即实现每日建构适合怎么样的情况

商业上可以使用IBM的BuildForge,也可以采用开源的Jenkins。
http://ke..com/view/3005512.htm?fr=aladdin
http://www.ibm.com/developerworks/cn/rational/advantage-rational-build-forge/index.html

‘贰’ 如何利用svn自动同步更新到网站服务器

一、安装 SVN服务器程序
1.1运行 VisualSVN-Server-1.7.2.msi

1.2选择程序安装目录 和 SVN仓库目录

我程序装在 C:\Program Files\VisualSVN Server , SVN仓库目录在 D:\SVN
1.3 安装完成,立即运行

二、服务器配置
2.1服务器维护界面

2.2仓库目录默认的内容

2.3创建新项目wapzucom

2.3创建用户ve

2.4设置项目的用户权限

Properties Security Add 选择刚创建的用户 ve ok 应用 确认

三、创建测试服务器目录 D:\WWWROOT ,本地开发目录 D:\WORKDIR

四、将代码(D:\Code )导入到项目仓库

输入用户名 密码 并 勾选 保存认证

导入成功,并返回版本号1

五、导出项目代码到工作副本、测试服务器目录

同理,另外导出一份到测试服务器目录D:\WWWROOT (测试服务器的Apache目录指向该位置)
六、使用Hooks自动更新测试服务器代码D:\WWWROOT
6.1 进入 D:\SVN\wapzucom\hooks 建立 post-commit.bat 文件

编辑其内容 为"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd
或者可参考下面这段话:
接下来最关键的一步是,我们需要找到服务器上安装的版本库的路径下面,以版本库名称命名的文件夹下,有一个名字为hooks的文件夹,在这个文件夹下建立post-commit.bat这样一个批处理文件,里面的内容如下:
@echo off
“D:\VisualSVN Server\bin\svn.exe” update “D:\Apache Software Foundation\Apache2.2\htdocs\soupei360″ –username XXXXX –password XXXXX
update前面的路径,是SVN服务器端程序的执行文件路径, 后面的是在服务器上同步到的目录的路径,username和password后面是刚才建立用户的用户名和密码,这段批处理的意思是,当我们在本地编写代码,然后通过svn的commit提交时候,首先提交到版本库中,然后版本库自动用这个批处理,把内容同步到服务器上之前指定的文件夹中,从而实现本地和远程同步操作。
两款SVN配置软件的具体配置教程可以通过搜索引擎得到具体设置方法,在此需要特意强调的是,一定要将本地和服务器上的目录都check out后,批处理才能够自动同步,服务器上的目标文件夹没有check out的话,即使设置的路径正确,也是不能同步的。
6.2 设置访问权限
我的电脑 右键 管理 服务和应用程序 服务 VisualSVN Server 右键 属性 登陆 添加访问权限 用系统管理员账号(我这里是user)

重启服务器

6.3测试Hooks工作是否正常
修改 index.php 状态

提交修改

最后打开D:\WWWROOT\index.php 可以发现代码已经被成功update

PS : 目录说明
C:\Program Files\VisualSVN Server 服务器安装目录
D:\SVN 仓库更目录
D:\WORKDIR 本地开发用的工作目录
D:\WWWROOT 服务器测试目录(Apache 指向该目录,即可实现工作目录内容修改后提交到SVN自动发布到测试目录)

‘叁’ svn 提交的时候加上auto_XXX可以实现自动更新生产环境,而且只更改修改过的请问是如何实现的

利用SVN的post-commit这个钩子可以实现,这个钩子是在每次成功commit后,由SVN服务器自动调用执行的。这个钩子存放在SVN服务器端该版本库存储路径下的hooks文件夹内,如果是windows操作系统,那么这个文件一般是一个.bat文件(也可以是其它可执行文件,比如post-commit.com文件)。你可以编辑这个文件,实现你想要的功能。

简单思路:
1、使用svn命令行检查提交的log中是否含有auto_XXXX;
2、如果含有auto_XXXX,则自动checkout或update代码文件夹;
3、自动编译该最新代码文件夹;
4、将编译结果复制到生产环境并安装。

这只是简单思路,其中其实还应该包括编译后的错误报告、自动化测试、测试后的错误报告等等,因为你是要安装到生产环境,要谨慎。

‘肆’ SVN在服务器端自动更新问题

一般来说,服务器端的SVN客户端自动更新都是通过post-commit这个钩子实现的,这个钩子存放在SVN服务器对应的版本库存储路径(不是指checkout出来的文件夹,指的是服务器端的存储文件夹)下的hooks文件夹内。

post-commit这个钩子是当每次成功commit时,SVN服务器自动调用执行的,通过这个钩子就可以 实现commit时实时更新服务器上的客户端。

另外,如果不采用实时自动更新,而是定时更新,那一般是通过操作系统的定时任务来实现的,你就去看有没有什么定时任务了。

最后,还有一些是通过一些其它软件来调度的,那就不好列举了。

‘伍’ 怎样通过SVN自动更新代码到服务器

把下面代码添加了svn/hooks/post-commit里(替换部分路径)。当有svn提交,系统发现提交的代码涉及相关目录,就会通过rsync把代码同步到web服务器。不过这里还需要做一个rsync免输密码的设置。

#!/bin/sh
lines="$(cd /projects && svn up | wc -l)"
if [ $lines -gt 1 ]
then
cd /projects && rsync -rv * [email protected]:/var/www/
fi

‘陆’ 怎样利用脚本通过SVN接口自动获取最新文件

[html] view plain
<project name="GetSVNHeadRevision">

<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>

<property name="workingCopy" location="." />

<target name="default">
<exec dir="${workingCopy}" executable="svn">
<arg line="up" />
</exec>
<exec dir="${workingCopy}" executable="svn" output="svninfo.xml">
<arg line="info --xml ${workingCopy}" />
</exec>
<xmltask source="svninfo.xml">
< path="/info/entry/@revision" property="svn.head.rev" />
</xmltask>
</target>
</project>

通过antcall执行后,top revision会被保存在"svn.head.rev"属性中。

‘柒’ 如何避免吧.svn文件编译到classes目录下

SVN是一个很好用的版本管理根据,但有一个很烦人的问题用eclipse编译java Web应用时候会把.svn文件也编译到classes文件夹下,这样给提交和更新都带来很大麻烦。如下是解决办法:

右键点击project
Properties -> Java Build Path -> Source 展开里面的项目
选中 Excluded,点击 Edit 按钮
在 Exclusion patterns 中点击 Add 按钮
输入 **/.svn/**
保存即可

‘捌’ 每次要用SVN更新项目 都需要手动跟服务器的同步一下 能不能设置成自动同步的啊

你的SVN更新项目、手动跟服务器同步分别指的是什么?
你所说的更新项目是指update吗?如果是这个的话,那肯定是要手动操作的,虽然理论上你可以做个定时任务,没隔几分钟命令行方式执行update一次,但由于update时可能会报告冲突,这种自动执行update很可能让你遗漏了冲突,得不偿失。

‘玖’ svn 自动部署到web服务器设置问题

修改服务器上的钩子程序post-commit,将指定要发布的内容的文件夹导出(export)到tomcat目录下就行了

钩子程序post-commit是在执行commit操作后自动执行的,这样每次commit后都自动执行一次导出操作,保持tomcat文件夹内容就是所要发布的内容

---------------------------------------------------------------------------
补充:
例如你版本库的svn访问地址是http://10.30.11.12:8080/svn/project1,你想把这个版本库下的/trunk/web文件夹发布到tomcat上,发布到tomcat的文件夹地址是d:/tomcat/opt/web,svn的管理员用户名是abc,密码是12345,那么这个钩子程序应该就是:
svn export http://10.30.11.12:8080/svn/project1/trunk/web d:/tomcat/opt/web --force --username abc --password 12345 --no-auth-cache

(本人对linux不熟悉,这行指令如有与linux语法不一致的地方,请参考原理自行修改)
说明:
1、--force 是说强制覆盖d:/tomcat/opt/web这个文件夹,避免这个文件夹不为空时报错
2、--username abc --password 12345 是自动将用户名和密码作为参数传送进去
3、--no-auth-cache 是说不缓存用户名和密码,这是出于安全考虑
4、svn export 是将所指定的url的内容导出到所指定的文件夹去。这里之所以不用update而用export,是因为update会导致生成一个隐藏.svn文件夹,这个文件夹是我们不需要的

当然了,如果整个发布的内容很多的话,建议还是用update,而不用export,因为update只更新有变化的部分,而export将重新导出所有内容,网络消耗比update大。

‘拾’ 如何构建java的自动取SVN代码编译、发布自动化系统,如果编译错误后自动发送邮件给相应的开发人员

: 一般svn检出来以后,要改下编码,把jdk删掉然后添加你电脑上的jdk,还有就是看什么jar包没引入的就映入一下

热点内容
自动编译div 发布:2025-01-12 18:51:06 浏览:659
手机路由器如何登陆密码 发布:2025-01-12 18:35:41 浏览:464
电光猫无法连接服务器是什么原因 发布:2025-01-12 18:32:58 浏览:512
迷你世界测试服的密码从哪里打开 发布:2025-01-12 18:25:32 浏览:110
我的世界手游tis服务器 发布:2025-01-12 18:24:28 浏览:585
青海省分布式服务器云主机 发布:2025-01-12 18:12:03 浏览:476
英雄联盟安卓手机版怎么切换 发布:2025-01-12 18:10:53 浏览:381
q5尊享时尚型哪些配置 发布:2025-01-12 18:05:41 浏览:229
安卓版本哪里下载 发布:2025-01-12 18:05:39 浏览:557
mc服务器搭建搜不到 发布:2025-01-12 17:57:37 浏览:19