gpt4 book ai didi

svn - 从 SVN 获取目录列表以用于 ANT 下拉列表

转载 作者:行者123 更新时间:2023-12-04 21:23:47 25 4
gpt4 key购买 nike

我已经对此进行了一些谷歌搜索,但似乎找不到符合我需要的任何内容。

我在我们的部署中使用 ANTForms 作为 GUI。开发人员可以从动态填充的下拉列表中选择构建,点击“确定”即可。

目前动态填充下拉列表的方式是通过 ANT 对我们的 ColdFusion 服务器进行 HTTP 网络服务调用,为其提供所需 SVN 目录的列表。 CF然后使用一些下划线Java来调用SVNKit并返回一个查询结果供CF处理。它将其转换为以逗号分隔的列表,为 ANT 输出它,然后构建这些下拉选项。

我正在使用 CF,因为那是我们的主要语言。我真的不知道任何 Java,但这里让我有点困扰的是,如果我知道我可以让 ANT 直接与 Java/SVNKit 对话,因此完全将 CF 剪掉。它可能还会消除对 HTTP 调用的需要,因为 SVN 设置是本地的,因此速度会提高 + 它消除了对外部源的依赖。

有没有人这样做过,或者你知道我能看到的任何工作示例,这些示例显示 ANT 直接与 SVNKit 对话来做这种事情吗?

我在 Subclipse 上查看了通常的 SVN ANT 任务,但他们没有任何方法可以做到这一点。

感谢任何帮助,詹姆斯

最佳答案

与其尝试用 Java 构建一些东西,不如基于标准颠覆客户端生成的 XML 输出,使用 XLST 生成 ANTForm 配置文件:

svn list --xml http://svn.apache.org/repos/asf/ant/ivy/core/tags > releases.xml

生成以下 releases.xml 文件(为清楚起见,我对其进行了编辑):

<?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>

例子

示例由两个文件组成

  • 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 - 从 SVN 获取目录列表以用于 ANT 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com