問題タブ [fileset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ant - ant を使用してファイルセットを動的に更新する
選択した Java モジュールに応じて動的に jar ファイルを作成したいのですが、それを行う ant スクリプトの一部を次に示します。
<property name="modules.selected" value="A,C,F" />
<for list="${modules.selected}" param="module">
<sequential>
<echo>Module chosen ${basedir}/@{module}/src</echo>
<copy todir="${build.dir.src}" overwrite="true">
<fileset dir="${basedir}/@{module}/src">
<include name="**/*.${src.valid.exts}" />
</fileset>
</copy>
</sequential>
</for>
上記のスクリプトでは、モジュールを選択してからディレクトリを作成し、ディレクトリに存在するすべてのモジュールを場所 (build/src) にコピーしています。しかし、上記のロジックを変更して、必要なすべてのモジュールを a に含め、移入されたものを使用してコピー
することは本当に好きではありません。
これが私が探しているロジックですfileset
fileset
<fileset id="required-modules" dir="${basedir}/@{module}/src">
<for list="${modules.selected}" param="module">
<sequential>
<echo>Module chosen ${basedir}/@{module}/src</echo>
<include name="**/*.${src.valid.exts}" />
</sequential>
</for>
</fileset>
<copy todir="${build.dir.src}" overwrite="true">
<fileset refid="required-modules" />
</copy>
上記のスクリプトを更新して機能させることができますか。
nant - ファイルセットが定義されているかどうかを検出する方法は?
私のカスタムNAntタスクは、特定のファイルセットに依存しています。これは、タスクが実行される時間によって定義されると見なされます。使用する前に、ファイルセットが定義されていることを確認したいと思います。に似たものを考えていproperty::exists('property')
ます。
適切な機能が見つかりませんでした。NAnt(またはNAntContrib )をそのまま使用することは可能ですか?
ant - refid による zip ファイルの作成中にエラーが発生しました
Ant タスクの一部として 2 つの zip ファイルを作成しようとしています。どちらも似ていますが、1 つには余分なデータが含まれています。コードを減らすために、ファイルセットを定義して参照したいと思います。唯一の問題は、エラーが発生することです。
仕事:
タスクの実行時:
ファイルが存在することを確認しました。readme インクルードを削除すると、別のファイルでエラーが発生するだけです。また、zipfileset をコピーして 2 つの別々のタグに貼り付けるだけでも、すべて正常に動作します。しかし、私はむしろそれをしたくありません。
編集: 2011 年 10 月 14 日にコンパイルされた Apache Ant(TM) バージョン 1.8.2、Mac OS X 10.7。他のプラットフォームでは試していません。
ant - groovc antタスクのコンパイルのために.classファイルをantクラスパスに追加しますか?
EclipseにMyAppというプロジェクトがあります。MyAppプロジェクト用に作成されたテストケースを含むTestRepositoryという別のプロジェクトがあります。
テストケースをコンパイルし、クラスパスが次のgroovycantタスクを使用してjunitレポートを生成しようとしています。
MyAppのjarファイルはクラスパスに追加されます。場合によっては、テストケースで参照されているMyAppプロジェクトのクラスがlibフォルダーのjarファイルに存在しない場合は、groovycでMyApp/bin
パッケージ内のクラスを検索する必要があります。
これどうやってするの?
PS:MyAppプロジェクトは非常に巨大であり、groovycタスクでMyApp内のすべてのsrcファイルをコンパイルするのではなく、binから追加の.classファイルを取得してクラスパスに配置するだけです。
java - DirectoryScanner: ant ファイルセットを使用した getExcludedFiles のパフォーマンスの問題
getExcludedFiles() のパフォーマンスを高速化する方法はありますか? ファイルセットのパターンをいじってみましたが、改善が見られませんでした。
これが私の状況です:
これらのパターンで定義されたファイルセットがあります。
の下basedir/normal
には、他に約 100 のサブディレクトリがありますが、abc だけに関心があります。ただし、 を呼び出すと、DirectoryScanner.getExcludedFiles()
slowScanner() が呼び出されたと思います。明らかに、他のすべてのサブディレクトリをスキャンしたに違いないため、24 時間のターンアラウンドが発生しました。どんな助けでも大歓迎です。
前もって感謝します、
ant - Ant、リモートマシンからファイルセットをダウンロード
私が読んだように、scpタスクを介してリモートマシンからファイルをダウンロードするとき、antは「fileset」属性を提供しません。ローカルマシンからファイルを送信する場合は機能しますが、リモートマシンで起動する場合は機能しません。それはドキュメントからです。したがって、リモートマシンでは、すべてのディレクトリにいくつかのフォルダとファイルのロードがあります。すべてのフォルダとすべてのフォルダから1つの指定されたファイルをダウンロードしたいと思います。何千ものファイルがあるため、すべてのファイルをダウンロードしてから不要なファイルを削除しても解決策にはなりません。
それで。リモートマシンの指定されたディレクトリからすべてのフォルダをダウンロードし(コンテンツなしでディスク上にのみ作成)、リモートマシンのすべてのディレクトリから指定されたファイルを1つダウンロードし、antを使用して対応するフォルダに配置するにはどうすればよいですか?
phing - FileSet内のファイルの順序(phing)
phing FileSetから特定の順序(たとえば、0〜9の後にAZが続く)でファイルを取得することは可能ですか?現在、番号が付けられたファイルを完全にランダムな順序で取得しています。
ant - ファイルセットの作成後に ANT がファイルセットの内容を更新するのはなぜですか? また、これをオーバーライドできますか?
これは例で説明するのが最も簡単かもしれないと思うので、ここに行きます:
出力:
私が理想的に望むのは、ファイルセットを同じままにして、前/後のセットを保持できるようにすることです(を使用して変更されたセットを取得するため、<difference>
それにスキップする方法を知っている場合...)。
<filelist>
代わりに使用してみましたが、これを正しく入力して<difference>
タスクで比較することはできません (コンテンツを出力できないように見えるため、デバッグも困難です)。<modified/>
また、ファイルセット内のファイルを選択するために使用しようとしましたが、まったく機能していないようで、常に何も返されません。
別のアプローチがあるとしても、上記の例で ANT が何をしているのか、またその理由をよりよく理解していただければ幸いです。
ant - Antで複数のzipfileset要素を再利用するにはどうすればよいですか?
一部のファイルに他のファイルと共通の内容が含まれる複数のzipファイルを作成する必要があります。各zipのファイルの完全なリストを指定するのではなく(実際にはかなり大きい)、再利用を試みたいと思いました。
だから私はこれに使っ<union>
てみました:
これにより、それぞれに「1」と「2」が含まれる2つのzipファイルが生成されますが、両方のファイルに「3」プレフィックスがありません。
私は何が間違っているのですか?
内部でzipfilesetを使用するカスタムタスクもあります。ユニオンでも動作するようにしようとしましたが、プレフィックス値を取得する方法がわかりませんでした。
if-statement - 条件に基づいて変更されたセレクターを含める
差分ビルドをサポートするために、既存のantスクリプトを変更しています。そのために、変更されたファイルのみを検索するために、ファイルセットで変更されたセレクターを使用しました。しかし、問題は、フルビルドを実行しているときに、いくつかのプロパティまたはパラメーターに基づいて変更されたフィルターをバイパスする必要があることです。以下に示すように。とにかくそれをすることはありますか?
dt
targetを使用して上記のantスクリプトを呼び出す場合modified
はexclude
、fileset
タスクを検討する必要があります。それが使用して呼び出す場合、私はタスクでdt2
のみ考慮する必要があります。exclude
fileset
fileset
ネストされたif
タスクをサポートしていないため、上記のスクリプトを使用できません。そのため、これを行う別の方法を探しています。これを行うためのいくつかの方法を提案してください。
PS:同じコピータスクで2つのターゲットを作成したくありません。1つはインクルードmodified
とexclude
インを使用しfileset
、もう1つは。のみを使用するターゲットexclude
です。