Dmi*_*try 5 java ant hudson java-ee hudson-plugins
我的任务是让Hudson在提交后开始新的构建.正如我在这里读到的那样,它是通过使用svn post-commit钩子完成的.问题是我不想使用VBScript,因此它是依赖于平台的.我可以看到这个VBScript中唯一重要的东西是使用svnlook命令和http:// server/subversion/$ {UUID}/notifyCommit?rev = $ REV url.就我而言,我可以做同样的事情,例如,使用java程序(需要参数作为修订,存储库位置等)
请你解开http:// server/subversion/$ {UUID}/notifyCommit?rev = $ REV url 的神秘面纱吗?我需要所有可能的变种.如果sombody可以描述与Hudson交互的整个过程(它是在获得此请求后执行的内部进程链),那将是很棒的
编辑我真的需要提交后行为,而不是轮询机制.
最快的跨平台解决方案是在 SVN 服务器上安装 Cygwin(假设 SVN 机器运行 Windows)并使用提供的 shell 脚本:
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "`svnlook changed --revision $REV $REPOS`" \
--output-document "-" \
--timeout=2 \
http://server/subversion/${UUID}/notifyCommit?rev=$REV
Run Code Online (Sandbox Code Playgroud)
我需要所有可能的变体
http://server/subversion/${UUID}/notifyCommit?rev=$REV
为什么?那一个可以满足您的所有需求。
您也可以使用 post-commit 挂钩中的某些内容来 ping: http://YOURHOST/jenkins/job/PROJECTNAME/build。您不会为每次提交都获得一个新的构建,但是如果您在几秒钟内有两次提交,您真的希望每次都构建吗?
只是出于好奇,您是否想要后期提交,因为您发现 SVN 服务器变得非常慢?如果是的话,SVN 盒子运行在什么操作系统上?您可能会遇到操作系统的限制,如果您迁移到 Linux 或 Windows 服务器版本,您将获得更好的性能(在相同情况下)。