9

私は SBT プロジェクト、具体的には Play Framework 2.1 プロジェクトを持っています。このプロジェクトには、構成で指定された多数のサブプロジェクトがあります。依存関係はコンパイル時に正常に機能しているように見えますが、「クリーン」は現在選択されているプロジェクトのみをクリーンアップし、その依存関係は含まれないようです。選択したプロジェクトとその依存サブプロジェクトの両方を消去する方法はありますか?

4

1 に答える 1

10

メイン プロジェクトが次のようにサブジェクトを集約する場合:

lazy val root = Project("name", file("."))
    .aggregate(module1, module2, macros)

このルート プロジェクトで呼び出されたコマンドは、すべてのサブプロジェクトに対して実行されます。sbt セッションでコマンドを呼び出すとinspect clean、関連セクションの下に、このクリーンに関連するすべてのサブプロジェクトが表示されます。

コメントの補足で

aggregatedependsOnは、目的によって異なるコマンドです。集計の目的は、ルート プロジェクトで呼び出されるコマンドを実行することです。ルート プロジェクトでコマンドを呼び出す私の例ではtest、このコマンドは および に対しても実行されmodule1 module2ますmacros。このような動作をオフにする場合は、次の設定を使用します。

aggregate in test := false

集約されたプロジェクトは、それらのコードに依存しません。通常、ルート プロジェクトで使用されます。たとえばtest、各プロジェクトで呼び出すのではなく、ルートで呼び出す場合などです。集約コマンドは並行して実行されることに注意してください。

また、dependsOnは、プロジェクトが他のプロジェクトのコードに依存することを意味します。この場合、SBT はコマンドを順番に実行しcompileます。ルート プロジェクトのdependsOn一部のモジュールに対して、最初のステップであるルート プロジェクトでそれらのモジュールをコンパイルする必要があります。

于 2013-08-07T06:53:26.097 に答える