簡體   English   中英

SBT訪問子目錄

[英]SBT accessing sub directories

我的項目文件結構如下所示:

  • build.sbt
  • LIB
  • 項目
  • SRC
  • 目標
  • 測試

lib文件夾里面我有包含額外jar文件的子文件夾。 如何讓SBT識別子文件夾或遞歸處理jar文件?

編輯:感謝@Jhonny Everson我能夠讓這個工作。 方法如下:在build.sbt中添加以下行

unmanagedJars in Compile <++= baseDirectory map { base =>
        val baseDirectories = (base / "lib" / "mycustomlib" )
        val customJars = (baseDirectories ** "*.jar")
        customJars.classpath
}

請注意,基本目錄是build.sbt所在的位置。

如果你把jar放在lib文件夾上,Sbt會自動使用它們。 您可以使用unmanagedJars指令指定可以在其中找到jar文件的多個目錄。 請參閱https://github.com/harrah/xsbt/wiki/Library-Management#manual-dependency-management

我想實現類似vim病原體的東西,這就是我想出的:

unmanagedJars in Compile ++= {
  val libs = baseDirectory.value / "lib"
  val subs = (libs ** "*") filter { _.isDirectory }
  val targets = ( (subs / "target") ** "*" ) filter {f => f.name.startsWith("scala-") && f.isDirectory}
  ((libs +++ subs +++ targets) ** "*.jar").classpath
}

使用sbt 0.13.x或依賴它的任何類型的safe -activator,這將檢查JAR的/lib/lib/*/lib/*/target/scala-*並將它們加載到類路徑中。 如果示例不夠清楚,無法理解發生了什么,那么知道baseDirectory.valuelibssubstargetssbt.Pathfinder實例可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM