再次將大型Maven代碼庫遷移到Bazel。
我有試圖從user.dir讀取一些文件的測試(如src/main/webapp
中的文件主要是爲了更容易在IntelliJ中運行測試)。
我想了解如何在Bazel構建過程中將其更改爲讀取文件。
認爲以下結構組成:
- RepoRoot
- SomeModule
- 的src/main
- web應用(包含例如WEB-INF/web.xml)中
- scala/com/wix/someCode(somCode中的BUILD文件)
- BUILD(文件組暴露的src/main/webapp的文件)
- 的src/main
- SomeModule
鑑於我有幾個SomeModule
S和它們共享一個測試工具,它暴露src/main/webapp/WEB-INF/web.xml
他們爲File
(可不會改爲FileInputStream
)我想了解如何最好地將這些文件暴露給測試和測試實用程序。
如果我在someCode
定義src/main/webapp
的依賴性:
- 數據 - 該文件將在runfiles公開爲文件但將坐在
user.dir/SomeModule/src/main/webapp
和測試工具不知道哪個SomeModule
的s時,在不在。 - 資源 - 這些文件將在classpath暴露但不作爲文件(
jar
方案) - classpath_resources-文件將直接對
user.dir
但AFAIU沒有src/main/webapp
目前我已經考慮過被暴露它作爲data
和使用$(location)
擴張在runfiles
位置傳遞到系統中的屬性測試該溶液。我用這種方法的主要問題是我認爲測試不能在IntelliJ中工作(除非Bazel插件同時支持$(location)
擴展和自動將jvm_flags傳遞到測試)。
我的問題是:
- ,這是什麼問題的最佳做法是什麼?
- 如果是
data
和$(location)
擴展那麼如何處理IntelliJ?
謝謝!你會說這是最好的做法嗎? – Ittai
我認爲是這樣,因爲有限制。 – kristina