一、SVN hooks相关知识
SVN hooks即SVN钩子脚本是利用后台的管理命令和所需要使用的hooks提供的参数。来进行一些组合,满足的需求! 钩子脚本在每个repos的hooks目录下面。每个里面都有模板,名字如:pre-commit.tmpl等,要实现钩子脚本,即在hooks目录下创建批处理或者可执行文件,文件名与相应的钩子模板名同如:pre-commit.bat。
二、WebService
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。很早就耳闻WebService,不过对其了解不多。这次的需要的操作是调用Jira系统的WebService,通过查相应资料获得WSDL的URL,再借用WSDL2JAVA工具生成客户端代码,将生成的代码导入eclipse,进行代码调用。
调用代码如下:
public class QSVerified {
public static final String UAT_VERIFIED = "10006";
public static final String QA_VERIFIED = "10008";
public static final String CLOSED = "6";
public static void main(String[] args) {
JiraSoapService cenericServices;
try {
cenericServices = new JiraSoapServiceServiceLocator().getJirasoapserviceV2();
String login = cenericServices.login("username", "password");
RemoteIssue issue = cenericServices.getIssue(login, args[0]);
String status = issue.getStatus();
if(UAT_VERIFIED.equals(status)||QA_VERIFIED.equals(status)
||CLOSED.equals(status)){
System.exit(1);
}else{
System.exit(0);
}
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteAuthenticationException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (java.rmi.RemoteException e) {
e.printStackTrace();
}
}
}
三、打jar包
需要将自己写的代码及WebService生成的客户端代码进行打包,打包命令:jar -cvf com/ QSVerified.jar,打包好后修改MANIFEST.MF文件,加上Main-Class及Class-Path,依赖包放在lib文件夹中,将QSVerified.jar及lib拷贝到hooks目录下。
四、在bat文件中执行jar包
在执行jar包时要注意加是jar的目录。
pre-commit.bat代码如下:
@echo off
set SVN_BINDIR=C:\"Program Files"\"VisualSVN Server"\bin
setlocal
set REPOS=%1
set TXN=%2
set first=1
rem check that logmessage not null
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr "." > nul
set s=%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%"
for /f "delims=" %%a in ('%s%') do ( if !first!==1 set str=%%a
set first=0)
set st=%str:*-=%
set prefix=QS-
set key=%prefix%%st:~0,5%
set temp=%st:~4,1%
if "%temp%"==" " set key=%prefix%%st:~0,4%
if %errorlevel% gtr 0 goto err
java -jar %REPOS%\hooks\QSVerified.jar %key%
if %errorlevel% gtr 0 goto err1
exit 0
:err1
echo The status of %key% is 'UAT Verified' or 'QA Verified' or 'Closed'! 1>&2
exit 1
:err
echo Please fill out log messages! 1>&2
exit 1
注意:bat中字符串的比较,变量需要加上引号,如"%s%"="abc"
分享到:
相关推荐
MyEclipse+SVN+Jira开发工具集成说明 有图 有文字 9页! 相当详细。
svn服务器+svn客户端+svn服务器配置 我建立了一个金山快盘,将svn安装在快盘 在异地打开金山快盘,开启服务器即可同步svn中的工程。
atlassian-jira-subversion-plugin-3.0.2-jira8.jar svn与jira集成 支持Jira 8 版本 亲测v8.3.0可用
SVN安装包+汉化,SVN安装包+汉化,SVN安装包+汉化,SVN安装包+汉化,
Jenkins+Svn+Docker+SpringCloud实现可持续自动化微服务
SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置SVN1.4.6 + apache2.2.11 + tomcat 6.0.18 集成配置
自己总结的windows版本的jenkins+svn+maven自动部署,其中配合了少量文字和一些截图,希望对大家有所帮助。
Ubuntu+svn+ssl+ldap 的安装以及集成
svn1.4.6+apache2.2 svn1.4.6+apache2.2
svn服务器+svn客户端+VS插件+svn客户端语言包
Jenkins+SVN+MAVEN+SHELL实现项目一键发布,非常好的学习资料
svn服务器+客户端+详细使用说明
SVN版本信息管理软件 最新Visual SVN 2.5.4 + TortoiseSVN-1.7.6.22632-win32-svn-1.7.4 压缩包中包含svn配置知道文档(多个)
SVN服务端+客户端+操作手册,通俗易懂,包能用
软件研发的发展趋势有以下几个特点: 1.客户越来越成熟,分工越来越细致 要求:对业务咨询能力、需求前瞻能力要求提高 转变:软件供应商独家交付咨询服务商+软件开发商协同研发 2.企业管理越来越专业化、精细化...
svn+apache+trac配置 svn+apache+trac配置 svn+apache+trac配置 svn+apache+trac配置
svn服务端+客户端64位1.8.1版本+svn语言包整合
指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...
SVN软件+SVN如何安装