2

SBT で構成を利用しようとしていますが、完全な依存クラスパスprovidedを取得する方法がわかりません。provided

簡単にするために、ABの 2 つのプロジェクトがあるとします。

  • Aにはいくつかの (JAR) 依存関係があり、コンパイルされたクラス ファイルをpath/to/A/target
  • Bはスコープ ( ) 内でAに依存し、コンパイルされたクラス ファイルをprovidedProject("B") dependsOn(A % "provided")path/to/B/target

Bでは、これは提供された JAR を返しますが、提供された内部依存関係は返しません。

providedDependencies <<= (update) map (_.select(Set("provided")))

path/to/A/targetこれは、すべての構成の内部依存関係 ( ) を返しますが、特にprovidedスコープに対してではなく、JAR 依存関係を出力しません。

providedDependencies <<= (internalDependencyClasspath) map (_.files)

ただし、B プロジェクトで使用するAモジュールがprovidedスコープに表示されます。show update

何か案が?

4

2 に答える 2

0

FXが提供するソリューションを試しましたが、空の依存関係リストが表示され続けました(提供されたものとそうでないものの両方)。

「更新」タスクに完全なビューを提供するように依頼してから、構成に基づいてフィルタリングできることがわかりました(「提供」など)。

val providedDependencies = TaskKey[Seq[java.io.File]]("task-provided-deps","The list of dependencies in the 'provided' scope")
...
providedDependencies <<= (update) map {
    up.select(configurationFilter("provided"))
},

このリストを使用して、提供された deps が「オールインワン」ソナー プラグインに取り込まれないように除外しました。

于 2013-08-05T00:33:26.757 に答える