2010-09-28 124 views
2

據對changing paths我試圖改變「目標」輸出目錄SBT教程「一些其它」更改SBT項目的目錄佈局

override def outputDirectoryName = "someother" 

一切順利,除了一個:SBT自動創建」目標目錄。歷史「文件裏面。爲什麼sbt這樣做,當它應該創建只有「別的」目錄?我tryied要覆蓋從BasicProjectPaths繼承的方法(我用sbt.DefaultProject爲我的項目描述符的超)

override def mainCompilePath = ... 
override def testCompilePath = ... 
... 

但SBT儘管路徑覆蓋創建「目標」文件夾中。

回答

2

一定是的,它應該在後備箱使用重寫outputDirectoryName ...

/** The path to the file that provides persistence for history. */ 
def historyPath: Option[Path] = Some(outputRootPath/".history") 
def outputPath = crossPath(outputRootPath) 
def outputRootPath: Path = outputDirectoryName 
def outputDirectoryName = DefaultOutputDirectoryName 

from SBT's current trunk)。

它可能在以前的版本中有所不同。你考慮過raising a new bug嗎?

0

在SBT 0.13.5,我發現了一種通過在build.sbt文件剛剛重新分配目標以改變目標文件夾:

目標:=文件(「someotherParent」)/「someotherSubdir」

這隻會修改構建類和工件的目錄,但.history文件始終位於項目根目錄中。

不幸的是,其他一些插件(xsbt-web-plugin)似乎有問題 - 通過SBT控制檯運行webapp會產生奇怪的錯誤,當我切換回標準目錄佈局時,這些問題就消失了。

0

實現我的目標(一個目錄中的所有JARS,其名稱包含JAVA-VM版本)的更好方法似乎是指定一個合適的發佈目標 - 對「sbt publish」的限制較少,和其他插件不會受到不同目錄佈局的干擾。