簡體   English   中英

將包含符號鏈接的Java源文件夾添加到build.sbt文件

[英]Add Java source folder containing Symlinks to build.sbt file

我正在做一個遺留代碼倉庫,我想將我的Scala項目添加到其中。 這是目錄樹:

LegacyFolder
|
--JavaSourceDir1
|---SymLink to "LegacyFolder"
--JavaSourceDir2
|---SymLink to "LegacyFolder"
--MyProject

我想在項目中使用JavaSourceDir1和JavaSourceDir2中的Java文件(作為依賴項)。 第一個想法是將它們添加為非托管源文件。 像這樣:

unmanagedSourceDirectories in Compile += baseDirectory.value / "../JavaSourceDir1"

unmanagedSourceDirectories in Compile += baseDirectory.value / "../JavaSourceDir2"

問題出在JavaSourceDir1/2內部的所有那些Symlink上,它們使SBT變得瘋狂,並且掛在Run / Compile命令上。 這是有道理的,因為SBT處於無限循環中以查找文件。

那么,我該如何解決呢? 有沒有辦法只以非遞歸方式獲取那些文件夾中的Java文件,並以某種方式將它們添加為依賴項?

您可以定義一個函數,該函數直接在給定目錄下的*.java legacyJavaSources下檢索*.java文件,並將結果饋送到unmanagedSources in Compile

lazy val root = (project in file("."))
  .settings(
    unmanagedSources in Compile ++=
      legacyJavaSources(baseDirectory.value.getParentFile / "JavaSourceDir1"),

    unmanagedSources in Compile ++=
      legacyJavaSources(baseDirectory.value.getParentFile / "JavaSourceDir2")
  )


def legacyJavaSources(dir: File): Vector[File] = {
  (dir * "*.java").get.toVector
}

暫無
暫無

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

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