3

SBTでカスタムデプロイタスクを実装していますが、必要なすべてのjarをデプロイメントフォルダーにコピーする必要があります。updateTaskKeyを使用してすべての外部依存関係へのパスを取得できます。残念ながら、updateReportには内部依存関係は含まれていません。これが私の簡単な設定です

val deploy = TaskKey[Unit]("deploy","deploy")

lazy val projectA = Project(id=project-a,
settings=Project.defaultSettings)

lazy val projectB = Project(id=project-b,
settings=Project.defaultSettings) dependsOn(projectA)

lazy val projectC = Project(id=project-c,
settings=Project.defaultSettings, ++ Seq(deployTask)) dependsOn(projectB)

val deployTask = deploy <<= (update) map {(updateReport) =>
val externalDependency = updateReport.allFiles //paths to all external dependencies are available here
//project-a.jar and project-b.jar are not here
}

したがって、問題は、内部プロジェクトの依存関係、つまりproject-a.jar、project-b.jarへの絶対パスをどのように取得できるかということです。

4

1 に答える 1

4

exportJarsプロパティを設定した場合:

exportJars := true

それから

exportedProducts in Compile

プロジェクトのjarファイルへのパスを指定する必要があります。

> show export-jars
[info] true
> show exported-products
[info] List(Attributed(/Users/luke/Work/myproject/server/target/scala-2.9.2/server_2.9.2-0.3-SNAPSHOT.jar))
[success] Total time: 0 s, completed Oct 5, 2012 11:29:51 PM
于 2012-10-05T22:31:40.617 に答える