使用SBT解压工件

使用SBT解压工件,sbt,Sbt,作为项目构建的一部分,我想将托管依赖项的zip工件解压缩到项目的特定目录中。在开始使用SBT之前,我是通过一个ANT脚本来完成这项工作的,该脚本将从maven依赖项获取zip工件并将其解压缩 我的问题是: 如何指定我要依赖于zip依赖项?我是这样定义的: “欧盟挖掘”%“sip创建者”%“0.4.6-SNAPSHOT” 但这并不能获取zip工件 在何处/如何连接到构建过程以运行解压缩(以及如何在该上下文中引用工件文件) 如果要提取一组托管依赖项,下面的代码应该可以工作。我在SBT0.12.0中

作为项目构建的一部分,我想将托管依赖项的zip工件解压缩到项目的特定目录中。在开始使用SBT之前,我是通过一个ANT脚本来完成这项工作的,该脚本将从maven依赖项获取zip工件并将其解压缩

我的问题是:

  • 如何指定我要依赖于zip依赖项?我是这样定义的:
    “欧盟挖掘”%“sip创建者”%“0.4.6-SNAPSHOT”
    但这并不能获取zip工件
  • 在何处/如何连接到构建过程以运行解压缩(以及如何在该上下文中引用工件文件)

如果要提取一组托管依赖项,下面的代码应该可以工作。我在SBT0.12.0中对其进行了测试,但它也应该适用于0.11.x

导入sbt_
导入密钥_
导入classpath.managedJars
对象测试构建扩展了构建{
lazy val jarsToExtract=TaskKey[Seq[File]](“要提取的JAR”、“要提取的JAR文件”)
lazy val extractJarsTarget=SettingKey[File](“提取jars目标”,“提取JAR文件的目标目录”)
lazy val extractJars=TaskKey[Unit](“提取jars”、“提取JAR文件”)
lazy val testSettings=Defaults.defaultSettings++Seq(
//定义依赖项
libraryDependencies++=Seq(
“com.newrelic”%“newrelic api”%“2.2.1”
),
//收集要从托管jar依赖项中提取的jar文件

jarsToExtract还没有。到目前为止,我仍在使用ANT版本的它来完成第二部分关于挂接解压操作的工作。您应该查看Tasks wiki。查看如何声明它们,然后建立依赖项,以便在构建或打包时触发。谢谢。是的,我确实有一个作为工件生成的ZIP文件我将在接下来的几天检查SBT如何检索它,然后使用您的代码来完成这项工作。
> clean
[success] Total time: 0 s, completed Oct 12, 2012 5:39:16 PM
> extract-jars
[info] Extracting newrelic-api-2.2.1.zip to /Users/balagez/Sites/test/extracted
[success] Total time: 0 s, completed Oct 12, 2012 5:39:22 PM
> compile
[info] Extracting newrelic-api-2.2.1.zip to /Users/balagez/Sites/test/extracted
[success] Total time: 0 s, completed Oct 12, 2012 5:39:24 PM