0

build.xmlで次のantスクリプトを使用してチュートリアルを読んでいました

<project name="calculator4" default="generate" basedir=".">
    <property name="src" location="src" />
    <property name="gen" location="gen" />
    <property name="src" location="src" />
    <property name="package" value="calculator4" />

    <target name="generate">
        <mkdir dir="${gen}/${package}" />
        <java classname="org.antlr.v4.Tool" classpathref="classpath" fork="true">
            <arg value="-o" />
            <arg path="${gen}/${package}" />
            <arg value="-lib" />
            <arg path="${src}/${package}" />
            <arg value="-listener" />
            <arg value="${src}/${package}/Calculator.g4" />
        </java>
    </target>

私はantについてあまり知らず、使いたくないので、コマンドを次のようにbashに変換しようとします

java org.antlr.v4.Tool -o gen/calculator4 -lib src/calculator4 -listener src/calculator4/Calculator.g4

しかし、gen/calculator4 でファイルを生成する正しい動作が想定されているように、gen/calculator4/src/calculator4 でファイルを生成するため、これは間違っています。

直接置換以外に ${} で何か特別なことはありますか?

4

1 に答える 1

0

生成されたファイルの相対パスは、入力ファイルの相対パスと一致します。入力ファイルとして指定src/calculator4/Calculator.g4したため、出力ファイルはsrc/calculator4/*.java.

  1. ディレクトリを変更して、作業ディレクトリが同じフォルダになるようにしますCalculator.g4
  2. -lib src/calculator4引数を削除してください。
  3. -o引数を に変更します-o ../../gen/calculator4
  4. Calculator.g4コマンドの最後の引数として渡します。
于 2013-09-12T00:51:32.903 に答える