获取目录列表从SVN为ANT下拉使用 [英] Getting directory listing from SVN for use in ANT dropdown

查看:416
本文介绍了获取目录列表从SVN为ANT下拉使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经做了这方面的一些谷歌搜索,但我似乎无法找到沿着什么,我需要的东西行

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下拉使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆