问题描述
我已经做了这方面的一些谷歌搜索,但我似乎无法找到沿着什么,我需要的东西行
I've done some Googling on this but I can't seem to find anything along the lines of what I'm needing.
我使用ANTForms对我们的部署的GUI。开发人员可以选择从动态填充下拉构建,点击OK客场不言而喻。
I'm using ANTForms for the GUI on our deployment. Developers can choose the build from the dynamically populated dropdown, hit ok and away it goes.
下拉动态填充目前的方法是ANT使一个HTTP Web服务调用我们的ColdFusion服务器给它需要SVN目录的列表。 CF然后使用了一下,强调的Java调用SVNKit并返回CF处理查询结果。它转换成一个逗号分隔的列表,输出它ANT,然后它建立这些下拉菜单选项。
The way the dropdown is dynamically populated at the moment is by ANT making an HTTP webservice call to our ColdFusion server giving it a list of needed SVN directories. CF then uses a bit of underlining Java to call SVNKit and return a query result for CF to process. It converts this to a comma-separated list, outputs it for ANT and it then builds these dropdowns options.
我使用的是CF,因为这是我们的主要语言。我真的不知道任何Java,但怎么在这里缠着我一点是,如果我没有,我知道我能得到ANT直接与Java / SVNKit,因此完全切断CF出来的图片。它可能也删除HTTP调用需要为SVN设置的是本地所以速度增加有+花费了一个外部源的依赖。
I'm using CF because that's our main language. I don't really know any Java but what's bugging me a bit here is if I did I know I could get ANT to talk to Java / SVNKit directly and therefore cut CF out the picture completely. It would probably also remove the need for the HTTP call as the SVN setup is local so a speed increase is there + it takes out the reliance on a external source.
有没有人这样做或你知道的任何工作示例我可以看到这个节目ANT说话直接SVNKit做这种事情?
Has anyone done this or do you know any working examples I could see that show ANT talking to SVNKit directly to do this kind of thing?
我看了一眼在Subclipse的通常的SVN Ant任务结束了,但他们没有这样做的任何方式。
I had a look at the usual SVN ANT tasks over at Subclipse but they don't have any way of doing this.
任何帮助AP preciated,
詹姆斯
Any help appreciated,James
推荐答案
而不是试图建立在Java中的东西,为什么不生成使用XLST您ANTForm配置文件,基于标准的颠覆客户端生成的XML输出:
Rather than trying to build something in Java why not generate your ANTForm configuration file using XLST, based on the XML output produced by the standard subversion client:
svn list --xml http://svn.apache.org/repos/asf/ant/ivy/core/tags > releases.xml
产生如下的 releases.xml 的文件(我已经编辑它的清晰度):
Produces the following releases.xml file (I've edited it for clarity):
<?xml version="1.0"?>
<lists>
<list path="http://svn.apache.org/repos/asf/ant/ivy/core/tags">
<entry ..>
<name>1.4.1</name>
..
</entry>
<entry ..>
<name>2.0.0</name>
..
</entry>
</list>
</lists>
示例
实施例包括两个文件
Example
Example is comprised of two files
- genGUI.xml
- genGUI.xsl
运行如下:
ant -f genGUI.xml
genGUI.xml
<project name="genGUI" default="run">
<property name="repo.url" value="http://svn.apache.org/repos/asf/ant/ivy/core/tags"/>
<property name="build.dir" location="build"/>
<property name="xsl.file" location="genGUI.xsl"/>
<property name="data.file" location="${build.dir}/data.xml"/>
<property name="run.file" location="${build.dir}/run.xml"/>
<target name="init">
<mkdir dir="${build.dir}"/>
</target>
<target name="get-data" depends="init">
<exec executable="svn" failonerror="true" output="${data.file}">
<arg line="list --xml ${repo.url}"/>
</exec>
</target>
<target name="generate" depends="get-data">
<xslt style="${xsl.file}" in="${data.file}" out="${run.file}"/>
</target>
<target name="run" depends="generate">
<ant antfile="${run.file}"/>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
</project>
genGUI.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="antform-home">${env.ANTFORM_HOME}</xsl:variable>
<xsl:template match="/">
<project name="genForm" default="menu">
<property environment="env"/>
<path id="runtime.cp">
<pathelement location="{$antform-home}/lib/antform.jar"/>
</path>
<target name="menu">
<taskdef name="antmenu" classname="com.sardak.antform.AntMenu" classpathref="runtime.cp"/>
<antmenu image="{$antform-home}/doc/images/logo-small.jpg" title="My simple form" stylesheet="{$antform-home}/style.test">
<label>Form is generated from subversion</label>
<xsl:apply-templates select="lists/list/entry"/>
</antmenu>
</target>
</project>
</xsl:template>
<xsl:template match="entry">
<button label="{name}" target="{name}"/>
</xsl:template>
</xsl:stylesheet>
这篇关于获取目录列表从SVN为ANT下拉使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!