我遇到意外(僅適用於我?)ScalaC行爲。
TL; DR是以下內容是我嘗試將代碼從maven遷移到bazel時看到的問題的重新創建。此遷移的主要重點之一是儘量減少每個類編譯所需的依賴關係,以便僅在需要時觸發構建。爲什麼scalac需要在類路徑上傳遞依賴關係
不幸的是我所看到的是,鑑於ClassIndirectlyNeedingFoo
(用途) - >ClassUsingFoo
(用途) - >Supplier
如果Supplier
的的ClassIndirectlyNeedingFoo
休息彙編是不是在classpath。 詳細信息在這裏(https://github.com/ittaiz/scalac-troubleshooting)。
如果有人知道爲什麼scalac的行爲,我真的很感激它。
謝謝!
BTW,供應商是不是在源或ClassIndirectlyNeedingFoo的字節碼...
爲什麼_wouldn't_你不需要傳遞依賴類路徑? –
這是預期的行爲。但斯卡拉中心可能會嘗試在這方面進行改進;請參閱https://github.com/scalacenter/advisoryboard/blob/master/proposals/009-improve-direct-dependency-experience.md和https://github.com/scalacenter/advisoryboard/blob/master/minutes/003 -2016-q4.md#proposal-scp-009-improve-user-experience-for-builds-that-use-only-direct-dependencies –
@MichaelZajac因爲'javac'沒有它,沒有提及'Supplier'在我正在編譯的東西的源代碼或字節碼中。對於運行時顯然它是需要的。 @SethTisue關於如何提前學習scalac需求的想法?顯然源/字節碼是不夠的。把編譯器插件看作是一個粗略的概念。謝謝! – Ittai