0

プロジェクトでantタスクを使用して、ディレクトリの作成、ファイルの削除など、さまざまなことを行っています。この場合、SVNサーバーからブランチのリストを取得します。これは完全に機能します。これはすべて、私のプログラムの実行時に発生し、Javaコードからタスクを起動します。

私の質問は:antファイル(tasks.xml)を操作することは可能ですか?ユーザーはユーザー名とパスワードの組み合わせを入力する必要があります。タスクを実行するときは、プロパティではなく、これらの資格情報をant-taskで使用する必要があります。

Antファイル:

<target name="getBranchList">
    <exec executable="c:/svnclient/svn.exe" 
            output="c:/test/output/versionsonsvn.log">
        <arg value="ls" />
        <arg value="--username" />
        <arg value="${svn.user}" />
        <arg value="--password" />
        <arg value="${svn.password}" />
        <arg value="--non-interactive" />
        <arg value="--trust-server-cert" />
        <arg value="${svn.server}" />
    </exec>
</target>

Javaでの使用方法:

import org.apache.tools.ant.*;

public static void main(final String[] args) {
    Vector<String> v = new Vector<String>();
    v.add("getBranchList");
    v.add("someOtherTask");
    fireAntTasks("c:/test/tasks.xml", v); }

private void fireAntTasks(String fileName, Vector<String> v) {
    File taskFile = new File(fileName);
    if (buildFile.exists()) {
        Project p = new Project();
        p.setUserProperty("ant.file", buildFile.getAbsolutePath());
        p.init();
        ProjectHelper helper = ProjectHelper.getProjectHelper();
        p.addReference("ant.projectHelper", helper);
        helper.parse(p, buildFile);
        p.executeTargets(v);

    } else {
        System.out.println("File not found!");
    }
}

私が想像できる唯一の解決策は、ファイルを直接操作することです(実行時に「tasks.xml」でプロパティを設定します)。しかし、これを機能させるためのより良い方法があるかもしれません...

ご挨拶

キリスト教徒

4

2 に答える 2

1

私はあなたを完全に理解しているかどうかはわかりませんが、いくつかのプロパティを置き換えるためにユーザー入力を取得しようとしていると思います。

変数に格納できるユーザーにプロンプ​​トを表示する入力タスクを使用することもできます。

または、プロパティタスクを介してantを実行する前に、ユーザーが編集するプロパティファイルをロードすることもできます。

于 2012-04-27T15:18:23.690 に答える
1

loadproperties タスクとプロパティ ファイルを使用して、次のようなことを実現できます。

<loadproperties srcFile="build.properties"/>

すべてのユーザーはbuild.properties、ビルド ディレクトリに を作成し、次のように値を配置する必要があります。

svn.user = user
svn.password = password

このファイルがホーム ディレクトリに存在するように作成することもできます。

<loadproperties srcFile="${user.home}/build.properties"/>

このようにして、ファイルはもう少し保護されます。

于 2012-04-27T15:19:32.760 に答える