我正在 SBT 中实现自定义部署任务,我需要将所有必需的 jar 复制到部署文件夹。
我可以使用以下命令获取所有外部依赖项的路径update
任务键。不幸的是 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
如果您设置exportJars http://www.scala-sbt.org/howto/package.html财产:
exportJars := true
then
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)