我们在这里使用QVCS。我试图自动执行签入和签出任务。参考QVCS网站:http://qvcs.cbmc.co.uk:9080/docs/qvcsanttask.html
我有以下脚本:
<taskdef name="qvcs"
classpath="${classpath};${basedir}/ant.jar;${basedir}/gui_out.jar"
classname="com.qumasoft.qvcslib.QVCSAntTask"/>
<!-- =================================================================== -->
<!-- Get by label for all project files -->
<!-- =================================================================== -->
<target name="GetByLabel"
depends="getPassword,getLabel,getInstallDir,getServerName"
description="Get by label from the Production Server.">
<qvcs userDirectory="${qvcs.installDir}"
serverName="${qvcs.serverName}"
userName="Your QVCS-Enterprise Username"
password="${qvcs.password}"
projectName="name of the project you want to work on"
viewName="name of the view you want to work on"
appendedPath=""
operation="get"
workfileLocation="the local workfile directory where results will go."
overWriteFlag="true"
label="${qvcs.label}">
</qvcs>
</target>
我对ANT不太熟悉。我把这个文件放在ANT目录中,把gui_out.jar放在同一个地方。但我得到这个错误: 建立失败
\apache-ant-1.9.4\bin\build.xml:3: Unexpected element "{}taskdef" {antlib:org.apache.tools.ant}taskdef
对此有任何帮助都很棒,谢谢。
答案 0 :(得分:1)
Ant构建文件应以project
元素开头:
<project default="default_target" name="Example project">
...
</project>
在project
元素中,您将声明目标,taskdef等
答案 1 :(得分:1)
我不会使用Ant自动结帐和签到。然后,您必须确保每个人都安装了Ant,具有gui_out.jar
以及他们需要的任何其他内容。如前所述,您的脚本顶部和底部需要<project>
和</project>
,但您的脚本仍有问题:
您没有定义以下目标。
您的结帐目标取决于定义的其他目标,并且您没有定义它们。
<qvcs/>
目标有文字字符串,可能是用户应自行设置的字符串。我很确定Your QVCS-Enterprise Username
不是系统中的有效用户名。这些必须转换为属性,并为用户设置它们 - 通过属性文件或请求输入。您是否在构建中使用Ant,并且只想添加签入和签出功能?或者您是否使用Ant进行自动检入和检出?
Ant不是一种编程脚本语言。它是一种构建依赖矩阵语言。它试图弄清楚它需要做什么以及以什么顺序进行构建。您没有给Ant执行构建的分步指导。你告诉Ant要运行什么目标,以及目标所依赖的目标。 Ant将构建一个依赖矩阵,然后找出首先是什么,接下来会发生什么。控制操作顺序可能非常困难。
如果要自动化,请使用编程工具。在PC上,使用批处理脚本或更好的PowerShell。在Unix上,使用Shell脚本或Perl或Python。更好的是,确保您的开发人员使用IDE进行开发,并让IDE负责您的qvcs检查和检查。很难说出你可以使用哪种IDE。这取决于您的编程环境。
顺便说一下,qvcs support的内容看起来不太好,您可能希望转向更广泛支持的工具。越快越好。
答案 2 :(得分:0)
我刚刚通过QVCS网站,现在意识到没有命令行客户端!
由于基于Java的命令行工具可能非常慢,因为它需要为每个单独的版本控制操作加载JVM,因此我们选择通过自定义蚂蚁为QVCS-Enterprise产品提供类似行为的命令行任务。
是的,Ant会更快 - 除了Ant也必须为每个版本控制操作加载JVM!
这将非常复杂......
build.xml
才能使用它。看起来您必须锁定个别文件进行编辑,这意味着您可能不会进入包含build.xml
的目录。每个命令看起来都像这样:
$ ant -f %BUILD_DIR%/build.xml -Duser=david -Dpassword=swordfish -Dview=default -DWorkfilelocation=... lock
您需要-f
参数指向build.xml文件的位置。您需要各种-D
参数来填写每次必须提供给命令行客户端的所有信息。
我想这个命令行客户端最终可能包含几个部分:
build.xml
文件。.svn
)或Git(.git
)这样的目录中,所以你可以有多个结账。有可能吗?大概。这值得么?可能不是。最后,您可能最好使用批处理脚本在纯Java中编写它来调用Java程序。同样,git
或svn
执行此类操作的方式:
C:> qvcs checkout -user david -password swordfish view ...
您需要安装一件事。
我强烈建议放弃qvcs。时钟在流逝。 Jim Vorbis宣布放弃qvsc。该网站现在是一些健康补品销售网站。 Vorbis先生尚未发布源代码,也没有提供服务器。
我会从qvcs中分类您需要的信息。也许获取最后这么多次迭代,然后将它们检查到Git或Subversion中。然后,从qvcs中严格使用您可以从新系统获得的历史记录。甚至Jim Vorbis也没有更好的建议:
最简单的方法是将所有版本控制的文件签入新工具,并将QVCS用于旧历史记录。所有其他方法都需要做更多的工作,并且可能无法产生足够可靠的结果以使其有用。
有一天,您的qvcs存储库将会死亡。也许新版本的Windows将出现在qvcs不起作用的地方。也许服务器软件会崩溃,你再也无法启动它。如果你不动,你就会失去一切。
您最好的选择是使用您的资源退出QVCS。