0

ANT ビルド ファイルでは、groovy スクリプトを呼び出すことがあります。

<groovy src="${groovy.script.dir}/DoIt.groovy"/>

1 つ以上の追加の Groovy ファイルを指定する方法はありますか? 私たちのユースケースは、いくつかのスクリプトで使用する必要があるいくつかの定数を個別に定義することです。

スクリプトを意図したとおりに使用するには、スクリプトを .class ファイルにコンパイルする必要がありますか?それとも、目標を達成するためのより洗練された方法はありますか?

4

2 に答える 2

1

<groovy>タスクのドキュメントには、src属性を指定すると次のように記載されています。

ファイルを含むディレクトリがクラスパスに追加されます

したがって、同じフォルダー内の他の Groovy クラスファイルは、宣言したスクリプトからアクセスできる必要があります。

これは機能していませんか?

于 2013-01-11T11:28:11.610 に答える
0

Groovy 1.8.1を使用して、過去に同じ種類の問題がありました。ドキュメントには、同じタスク内で複数のスクリプト ファイルを使用する方法が見つかりませんでした<groovy>(ant<script>タスクのドキュメントも参照してください)。コンテキストがそれらの間でリセットされたため、複数のタスクを使用してもうまくいきませんでした。

Groovy 2.xy はあまり使用しないため、アップグレードしていません。以下に、1.8.1 で考えられる回避策を示します。おそらくそれはまだ有効です。

<property name="home" location="/Users/coyote/mytest/ant/src"/>
<property name="gscript1" location="${home}/my/own/pack/foo.groovy"/>
<property name="gscript2" location="${home}/my/own/pack/bar.groovy"/>

<groovy>
  evaluate( new File(properties.'gscript1') );
  evaluate( new File(properties.'gscript2') );
</groovy>

evaluate()現在のバインディングを使用して、API ドキュメントに従って、動的評価を実行する文字列またはスクリプト ファイルのいずれかを受け取ります。それらは<groovy>タスクのバインディングだと思います。

あなたのユースケースを理解しているかどうかはわかりませんが、このモデルではもちろん最初に定数を定義できます。ハードコーディング、プロパティ + コード、または groovy-script-file + 評価として。

于 2013-02-13T10:28:20.543 に答える