Я столкнулся с неожиданным (только для меня?) Поведением ScalaC.
TL, DR - это то, что следующее - это воссоздание проблемы, которую я видел, пытаясь перенести кодовую базу с maven на bazel. Одним из основных направлений этой миграции является попытка минимизировать зависимости, необходимые каждому классу для компиляции, так что сборки будут запускаться только при необходимости.Почему скаляк нуждается в транзитивной зависимости от пути к классам
К сожалению, то, что я видел в том, что данные ClassIndirectlyNeedingFoo
(использование) ->ClassUsingFoo
(использует) ->Supplier
составление ClassIndirectlyNeedingFoo
перерывов, если Supplier
не на пути к классам. Полная информация здесь (https://github.com/ittaiz/scalac-troubleshooting).
Если кто-нибудь знает, почему скалак ведет себя так, я бы очень признателен.
Спасибо!
BTW, Поставщик не в источнике или байткод из ClassIndirectlyNeedingFoo ...
Почему _wouldn't_ вам нужна транзитивная зависимость от пути к классам? –
Это ожидаемое поведение. Но Scala Center может попытаться сделать улучшения в этой области; см. 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 # предложение-scp-009-улучшить-user-experience-for-builds-that-use-only-direct-dependencies –
@MichaelZajac, потому что 'javac' работает без него и' Поставщик' не упоминается в источнике или байт-коде вещей, которые я компилирую. Разумеется, для времени выполнения это необходимо. @SethTisue какие-либо идеи о том, как я могу заранее узнать, что скалак нуждается? очевидно, источник/байт-код недостаточно. Мысль о плагине компилятора как грубое понятие. Благодаря! – Ittai