所以,这里是"svnant"的例子:
<path id="devlibs.path">
<fileset dir="devlib" includes="**/*.jar" />
</path>
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="devlibs.path" />
<svnSetting
id="svn.settings"
svnkit="false"
javahl="false"
username="${svn.username}"
password="${svn.password}" />
<target name="get-svn-author">
<svn refid="svn.settings">
<singleinfo target="${svn.repo.url}" property="author.result" request="author" />
</svn>
<echo message="Author of last commit: ${author.result}" />
</target>
Run Code Online (Sandbox Code Playgroud)
您应该将"svnant.jar"和"svnClientAdapter.jar"放入"devlibs.path"标识的路径中.和"javahl"或"svnkit"所需的其他库到你的"$ {ANT_HOME}/lib".
如果你有1.6格式的SVN存储库,你可以使用"svnkit"(在"svnSetting"-block中设置为"true").因为"svnkit"是纯Java工具包,所以当您需要跨平台解决方案时,最好使用它.如果您已经切换到1.7,那么我建议使用SVN命令行客户端(在我的示例中为命令行客户端配置"svnSetting").查看此页面(Slik SVN),了解有关在何处查找以及如何安装不同SVN命令行客户端的信息.
如果您更喜欢不使用可选任务的解决方案,以下是您如何做到这一点的要点:
<target name="get-svn-author">
<tempfile property="svninfo.result"/>
<exec executable="svn" output="${svninfo.result}">
<arg value="info"/>
<arg value="${svn.repo.url}"/>
</exec>
<tempfile property="svnauthor.result"/>
<copy file="${svninfo.result}" tofile="${svnauthor.result}">
<filterchain>
<linecontainsregexp>
<regexp pattern="Last Changed Author:*"/>
</linecontainsregexp>
</filterchain>
</copy>
<concat>
<filelist files="${svnauthor.result}"/>
</concat>
<delete file="${svninfo.result}"/>
<delete file="${svnauthor.result}"/>
</target>
Run Code Online (Sandbox Code Playgroud)
一个问题是您编写/删除可能并不总是可能的文件(即,如果您没有权限).另一个问题是svn必须安装一个svn客户端(可以通过命令行中的命令运行).
| 归档时间: |
|
| 查看次数: |
4902 次 |
| 最近记录: |