2011-06-12 46 views
0

如何使用simple build tool (sbt) 0.10.0生成基於ANTLR3語法的任何類型的源代碼?使用SBT 0.10.0與ANTLR3生成源代碼

我想我必須爲這樣的事情使用插件,如果我想在同一個項目或同一個父項目的子項目中使用生成的代碼。有沒有現有的SBT 0.10插件? ...或者也許另一個解決方案,而不使用插件?

回答

3

你不需要使用插件。

首先,您需要將antlr定義爲依賴項。然後,你將需要根據此頁面來定義你的源生成任務:

https://github.com/harrah/xsbt/wiki/Common-Tasks

你的任務定義是要看起來像這樣:

sourceGenerators in Compile <+= sourceManaged in Compile map { dir => 
    <code to generate source from grammar files> 
} 

凡代碼來生成源會用您的文件創建一個新的org.antlr.Tool對象作爲構造函數的參數。一旦創建了Tool對象,然後調用process方法,並且應該生成源代碼。

+0

謝謝。我會檢查我是否會得到這個工作:) – Steffen 2011-06-17 13:12:24

+0

@steffen我很好奇這是如何工作的,這是一個在黑暗中拍攝的基礎,它取得了ANTLR與Gradle合作的成果(http://www.gradle。組織/)。 – ironchefpython 2011-06-17 15:01:36

+0

這實際上是要走的路。與此同時,我開發了一個插件,使其更具可重用性。它可以在我的github頁面上找到,並鏈接到「官方」插件列表https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list。再次感謝指針。 – Steffen 2011-12-10 00:18:20