一、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,进行代码调用。
调用代码如下:
三、打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代码如下:
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"
博文转自xafc2370
买JIRA上CSDN,特殊折扣购买通道:
http://atlassian.csdn.net/module/btc/atlassian/prduct_detail?project_id=445&module=34&product=9
CSDN开立Atlassian中文技术论坛更多交流分享请点击:
http://bbs.csdn.net/forums/atlassian