0

ビルドファイルではAnt、テキストファイルを読み取る暗号化されたプロパティを使用しています。ビルドプロセス中に、一種のブートストラップターゲットでこれを復号化する必要があります。どうすればよいですか?

例として、ここにファイルの内容があります。

myFile.txt

ENCRYPTED=encryptedtext

build.xml

<project name="myProject" default="all">
<property file="myFile.txt">

<!--Specify bootstrap target here to perform the decryption task-->

<target name="myTarget">
<!--Use the decrypted property here-->

これを行う1つの方法は、復号化を実行するターゲットを設定し、それをdepends必要なすべてのターゲットに追加することです。やりたくない。プロセスを可能な限りクリーンにする代替案に興味があります。これはまた、「他の場所で復号化を実行し、そこから読み取ってみませんか? 」という解決策をすでに検討していることを意味しますが、私はそれらに興味がありません。

ありがとうございました。

4

3 に答える 3

5

私の意見では、あなたが述べた目標に反して、あなたの要件を設定する最もクリーンな方法depends、antが提供する構造を使用することだと思います。それはまさにこの目的のために開発されました。

antプロセスを実行するたびにこの復号化が確実に実行され、dependsツールを使用したいという衝動に抵抗したい場合は、を呼び出す前に、復号化プロセスをant.batに配置するオプションがあります。適切なant、またはant.batを独自のdecryptAndCallAnt.batでラップします。

于 2009-12-30T20:12:50.497 に答える
4

復号化を実行するために独自のタスクを実装する場合は、次のようなことができるはずです。

<decrypt file="myFile.txt" refid="decrypted.refid"/>
<property refid="decrypted.refid"/>

と呼ばれる独自のタスクを実装します。このタスクは、ref-idを使用してリソースdecryptを読み取り、定義します。タスクは、「ref-id」属性を使用して、任意のタイプのリソースからプロパティを読み取ることができます。独自のタスクを定義する方法と、暗号化されたファイルの内容を含むリソースを定義する方法の詳細を理解するには、 Antのマニュアルを掘り下げる必要がありますが、実行可能である必要があります。myFile.txtdecrypted.refidproperty

于 2009-12-30T21:10:37.323 に答える
1

新しいバージョンのAnt(1.6以降)では、タスクをターゲットに含める必要はありません。特定のタスクを常に実行したい場合は、それらをターゲットにラップしないでください。

于 2010-01-07T00:30:07.960 に答える