3

私はこれについてグーグルをしましたが、私が必要としているものの線に沿って何も見つけることができないようです。

デプロイメントのGUIにANTFormsを使用しています。開発者は、動的に入力されたドロップダウンからビルドを選択し、[ OK]をクリックすると、すぐに使用できます。

現時点でドロップダウンに動的にデータが入力される方法は、ANTがColdFusionサーバーに対してHTTP Webサービス呼び出しを行い、必要なSVNディレクトリのリストを提供することです。次に、CFは少し下線を引いたJavaを使用してSVNKitを呼び出し、CFが処理するクエリ結果を返します。これをコンマ区切りのリストに変換し、ANTに出力してから、これらのドロップダウンオプションを作成します。

CFを使用しているのは、それが私たちの主な言語だからです。私はJavaを本当に知りませんが、ここで少し悩んでいるのは、ANTがJava / SVNKitと直接通信できることを知っていた場合、CFを完全に切り取ることができるということです。また、SVNセットアップがローカルであるため、HTTP呼び出しの必要性がなくなるため、速度が向上し、外部ソースへの依存がなくなります。

誰かがこれを行ったことがありますか、またはANTがこの種のことを行うためにSVNKitに直接話していることを示す実際の例を知っていますか?

Subclipseで通常のSVNANTタスクを確認しましたが、これを行う方法がありません。

助けてくれてありがとう、ジェームズ

4

1 に答える 1

2

Javaで何かを構築しようとするのではなく、標準のSubversionクライアントによって生成された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>

例は2つのファイルで構成されています

  • 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>
于 2010-08-20T19:02:11.200 に答える