2013-10-03 31 views
1

我有一個sbt項目配置(通過build.sbt)生成一個OSGI包(使用sbt-osgi插件)。爲什麼sbt-osgi在我的MANIFEST.MF中添加Include-Resource指令?

出於某種原因,產生MANIFEST.MF包含Include-Resource指令指向(全空)「資源」在我的build目錄下的子目錄(src/main/resourcestarget/scala_2.10/resource_managed/main,特別),儘管事實上,我並沒有做什麼來告訴它這樣做(我絕對不希望我的工件指向我的主目錄中的位置)。

爲什麼sbt-osgi這樣做,更重要的是,我該如何讓它停止?

build.sbt可以在這裏找到:https://github.com/reggert/reb4s/blob/1cd91fb82aa978b2f202c618ca6403a66c15f8d7/build.sbt

回答

0

它已經好幾個月,因爲我使用的OSGI插件,但我想我能記得足以讓你的軌道上。首先,請注意,這是在做這裏所有辛苦工作的BND。 sbt插件只是一個包裝。有一些關於Include-Resource標題的討論。我相信您可以將此標頭設置爲None或設置爲插件additionalHeaders的空字符串。

+0

我嘗試添加這一行: 'OsgiKeys.additionalHeaders:=地圖( 「包含 - 資源」 - > 「」)' 但無明顯的影響。 – reggert

+0

這看起來可能是sbt-osgi中的一個bug。 「包含資源」不是合法的OSGi MANIFEST標頭。這是一個BND配置參數。但不知怎的,它被設置爲OSGi標頭。 – reggert

+1

我剛剛確認它是一個錯誤,可以通過對sbt-osgi源文件進行單字符更改來修復它! :-D – reggert

相關問題