Sbt 如何找到zip依赖路径?
在我的SBT构建中,我获取了一个zip依赖项(以前使用SBT native packager插件构建),该依赖项使用Sbt 如何找到zip依赖路径?,sbt,sbt-native-packager,Sbt,Sbt Native Packager,在我的SBT构建中,我获取了一个zip依赖项(以前使用SBT native packager插件构建),该依赖项使用bundle分类器发布在我的本地Ivy repo中 但是我需要Ivy repo中的依赖路径,以便解压缩它(使用IO.unzip),在其中放入一些文件,并使用sbt native packager重新打包 我正在使用工件(…)方法查找工件并将其添加为依赖项: "foo" % "bar" % "1.0-SNAPSHOT" artifacts(Artifact("bar-bundle",
bundle
分类器发布在我的本地Ivy repo中
但是我需要Ivy repo中的依赖路径,以便解压缩它(使用IO.unzip
),在其中放入一些文件,并使用sbt native packager重新打包
我正在使用工件(…)
方法查找工件并将其添加为依赖项:
"foo" % "bar" % "1.0-SNAPSHOT" artifacts(Artifact("bar-bundle", "zip", "zip", "bundle"))
但在那之后,我有点迷路了
我试图过滤掉dependencyClasspath
以找到它:
val bundleFile = taskKey[File]("bundle's path")
val settings = Seq(bundleFile <<= dependencyClasspath map { _ filter (_.endsWith(".zip"))})
val bundleFile=taskKey[File](“bundle的路径”)
val settings=Seq(默认情况下,bundleFileZip文件不在类路径上。包含的工件类型由classpathTypes
配置。您可以使用以下方法向其添加“Zip”:
classpathTypes += "zip"
然后它将出现在dependencyClasspath
上
但是,如果它实际上不应该在类路径上运行,那么您可以直接将其从更新报告中取出
bundleFile := {
val report: UpdateReport = update.value
val filter = artifactFilter(name = "bar-bundle", extension = "zip")
val all: Seq[File] = report.matching(filter)
all.headOption getOrElse error("Could not find bar-bundle")
}
有关详细信息,请参阅上的文档