Я пишу подключаемый модуль для SBT, который будет генерировать файлы конфигурации, необходимые для создания функции Azure из программы Scala. Мои усилия находятся на github (https://github.com/code-star/sbt-azure-functions-plugin/tree/develop), и, как можно прочитать в файле readme, я хочу автоматически запускать задачу assembly
всякий раз, когда пользователь выдает sbt azfunCreateZipFile
.
Пользователи моего плагина могут добиться этого, добавив следующую строку в свой build.sbt
:
azfunCreateZipFile := (azfunCreateZipFile dependsOn assembly).value
Я бы хотел, чтобы эта проводка задачи уже была включена в определение моего плагина. Как я могу это сделать?
Я знаю, что задачи можно сделать зависимыми от других задач, используя otherTask.value
в определении задачи, поэтому я попытался добавить такую строку в определение задачи azfunCreateZipFile
(см. ./plugin/src/main/scala/sbtazurefunctions/AzureFunctions.scala
):
azfunGenerateFunctionJsons := {
// depend on assembly step
val _ = assembly.value
... <actual task definition code>
azfunTargetFolder.value
}
Но потом получаю ошибку, что сборка не найдена:
[IJ]sbt:root> compile
[info] Compiling 1 Scala source to /home/jml/work/scala/azure/sbt-azure-functions- plugin/plugin/target/scala-2.12/sbt-1.0/classes ...
[error] /home/jml/work/scala/azure/sbt-azure-functions-plugin/plugin/src/main/scala/sbtazurefunctions/AzureFunctions.scala:113:15: not found: value assembly
[error] val _ = assembly.value
[error] ^
[error] one error found
[error] (plugin / Compile / compileIncremental) Compilation failed
[error] Total time: 1 s, completed Jan 3, 2021, 4:41:56 PM
[IJ]sbt:root>
Я пробовал много импортов, но ни один из них не увенчался успехом:
import sbtassembly.AssemblyPlugin._ (and variations using AssemblyKeys and the AutoImport object)
import sbt.Keys._
Что я могу сделать, чтобы исправить это?