Вы должны использовать скрипт ./build/sbt
в комплекте с источником источника искры. Это вызывает другой сценарий sbt-launch-lib.bash
, что делает некоторые профиль связанные с магией:
enableProfile() {
dlog "[enableProfile] arg = '$1'"
maven_profiles=("${maven_profiles[@]}" "$1")
export SBT_MAVEN_PROFILES="${maven_profiles[@]}"
}
С другой стороны, определение проекта SparkBuild
расширяет PomBuild
, что позволяет использование проекта Maven (включая профили):
override val profiles = {
val profiles = Properties.envOrNone("SBT_MAVEN_PROFILES") match {
...
}
profiles
}
So он должен работать, если вы запустите его, как это (с помощью Cygwin):
sh build/sbt -Pyarn package
тем не менее, это не работает для меня из из-за неправильного обнаружения пути до sbt-launch-lib.bash
. Поэтому я заменил в build\sbt
одной строке:
. "$(dirname "$(realpath "$0")")"/sbt-launch-lib.bash
в
. "$(dirname "$(realpath "$0")")"/build/sbt-launch-lib.bash
У меня есть два вопроса. 1. Почему вам нужно перестроить искру в Windows? Почему бы не использовать одну из готовых бинарных версий, доступных на сайте Spark? 2. В Windows, как вы пытаетесь запустить sbt и процесс сборки? вы используете PowerShell, например Cygwin? – user1314742
Ответ на первый вопрос обычно приводит к огромному аргументу о том, «почему бы вам делать то, что вы хотели бы сделать», поэтому я просто избегу этого, если вы не возражаете. Я просто вызываю команду 'sbt' из простого терминала. – Dyin
Я бы порекомендовал то же самое, что упоминалось в @Vitaliy Kotlyarenko, sbt не предназначен для поддержки профилей maven, поэтому вам нужно использовать sbt, который поставляется с исходным кодом Spark – user1314742