如何在SBT .scala项目配置中从多个非托管目录添加jar
发布时间:2020-12-16 18:42:32 所属栏目:安全 来源:网络整理
导读:我正在尝试让SBT构建一个可能有多个非托管目录的项目.如果我有一个目录,我可以轻松地这样做: unmanagedBase := file( "custom-libs" ).getAbsoluteFile 但由于我有两个带有非托管jar的目录,我需要能够将它们全部添加.我找到了一些信息in here,但对我的完整.
我正在尝试让SBT构建一个可能有多个非托管目录的项目.如果我有一个目录,我可以轻松地这样做:
unmanagedBase := file( "custom-libs" ).getAbsoluteFile 但由于我有两个带有非托管jar的目录,我需要能够将它们全部添加.我找到了一些信息in here,但对我的完整.scala文件构建似乎没有用. 我创建了一个简单的项目,显示问题in here.以下是我的Build.scala文件. UPDATE 我从sbt-users list获得了一些帮助,并且能够正确定义非托管jar,但代码仍然无法编译(但是sbt show unmanaged-jars正确显示文件). import sbt._ import com.github.siasia._ import PluginKeys._ import Keys._ object Build extends sbt.Build { import Dependencies._ val unmanagedListing = unmanagedJars := { Dependencies.listUnmanaged( file(".").getAbsoluteFile ) } lazy val myProject = Project("spray-template",file(".")) .settings(WebPlugin.webSettings: _*) .settings(port in config("container") := 8080) .settings( organization := "com.example",version := "0.9.0-RC1",scalaVersion := "2.9.1",scalacOptions := Seq("-deprecation","-encoding","utf8"),resolvers ++= Dependencies.resolutionRepos,libraryDependencies ++= Seq( Compile.akkaActor,Compile.sprayServer,Test.specs2,Container.jettyWebApp,Container.akkaSlf4j,Container.slf4j,Container.logback ),unmanagedListing ) } object Dependencies { val resolutionRepos = Seq( ScalaToolsSnapshots,"Typesafe repo" at "http://repo.typesafe.com/typesafe/releases/","spray repo" at "http://repo.spray.cc/" ) def listUnmanaged( base : RichFile ) : Keys.Classpath = { val baseDirectories = (base / "custom-libs") +++ ( base / "custom-libs2" ) (baseDirectories ** "*.jar").classpath } object V { val akka = "1.3" val spray = "0.9.0-RC1" val specs2 = "1.7.1" val jetty = "8.1.0.v20120127" val slf4j = "1.6.4" val logback = "1.0.0" } object Compile { val akkaActor = "se.scalablesolutions.akka" % "akka-actor" % V.akka % "compile" val sprayServer = "cc.spray" % "spray-server" % V.spray % "compile" } object Test { val specs2 = "org.specs2" %% "specs2" % V.specs2 % "test" } object Container { val jettyWebApp = "org.eclipse.jetty" % "jetty-webapp" % V.jetty % "container" val akkaSlf4j = "se.scalablesolutions.akka" % "akka-slf4j" % V.akka val slf4j = "org.slf4j" % "slf4j-api" % V.slf4j val logback = "ch.qos.logback" % "logback-classic" % V.logback } } 解决方法
我只是使用sbt 0.11.x从我的build.sbt文件发布片段.它可能会被重构一点.
unmanagedJars in Compile <++= baseDirectory map { base => val libs = base / "lib" val dirs = (libs / "batik") +++ (libs / "libtw") +++ (libs / "kiama") (dirs ** "*.jar").classpath } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |