2016-11-24 4 views
1

Я разрабатываю искровое приложение. Чтобы проверить его локально, я хочу запустить sbt run. Для этого требуется, чтобы зависимости были доступны локально. Но я также хочу использовать sbt assembly, чтобы создать банку, которая может использоваться для spark-submit, которая должна включать только некоторые из зависимостей, например. не включают искровые зависимости.sbt монтажный переключатель между предусмотренными зависимостями

Когда я отмечаю зависимость в build.sbt, как % "provided" она больше не доступна через sbt run

+0

Этот вопрос имеет 2 подвопросы - вы должны разделить его на два отдельных вопроса, чтобы было легче ответить –

+1

ok Я сделаю это. Вот вопрос 2: http://stackoverflow.com/questions/40782435/sbt-switch-dependencies-for-runtime –

ответ

2

Если дело исключить банки в использовании сборки в главном built.sbt

excludedJars in assembly := { 
    val cp = (fullClasspath in assembly).value 
    cp filter {f => 
    f.data.getName.contains("spark"), 
    f.data.getName.startsWith("jar_name") 
    } 
} 
+1

, но все же это не исключает транзитивных зависимостей для искры, например. Я столкнулся с проблемами с крио. Как я могу исключить все «транзитивные» зависимости банки? –

+0

Я хочу добавить http://stackoverflow.com/questions/18838944/how-to-add-provided-dependencies-back-to-run-test-tasks-classpath/21803413#21803413 - это лучшее решение для моей конкретной пользовательской системы с искрами. –