問題タブ [parallel-builds]
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.
java - Ant の依存関係が複数回同時に呼び出されるのを防ぐ
背景: Java コードをコンパイルし、コンパイルされたクラスを使用して 2 つの jar をビルドするビルド プロセスがあります (各 jar は異なるサブセットであり、一部のクラスは両方に表示されます)。
ここで、ユーザーが各 jar を個別にビルドできるだけでなく、並行して一緒にビルドできるようにする必要がありました (合計ビルド時間が大幅に短縮されるため)。
そこで、次のような構造のスクリプトを思いつきました。
問題は、「all-jars」ターゲットを使用すると、「compile」ターゲットが 2 回実行されることです。それを防ぐための標準的な方法はありますか?さらに良いことに、antcall を使用する代わりになる方法はありますか?
PS私はここで同様の質問を見つけましたが、答えはありませんでした。
makefile - サブメイクで同時実行を制限する
いくつかのサブディレクトリにまたがるプロジェクトでは、ビルドに GNU make を使用します。開発者は-j <number>
フラグを使用してビルド タスクを並列化し、マシンのハードウェアに適した数を選択できます。
ただし、私たちが使用するサードパーティ ライブラリの Makefile は安全に並列化できません。すべての依存ターゲット間の明示的な依存関係ルールではなく、ターゲットの暗黙的な順序に依存しているようです。
私はサードパーティの Makefile を修正するつもりはないので、現在、-j 1
そのライブラリをビルドするためのジョブの数を 1 に制限する明示的なパラメーターを使用してサード パーティの Makefile を呼び出しています。ルールは次のようになります。
これは希望どおりに機能しますが、make はこれに対して警告を発します。
これにより、1 つのサブ make で並列ジョブの数を制限するためのより良い方法があるかどうかをここで質問することになります。