Выполните задачу sbt перед упаковкой фляги - PullRequest
1 голос
/ 07 октября 2019

Я написал небольшой плагин sbt для редактирования некоторых файлов ресурсов в каталоге проекта target (на самом деле он работает аналогично maven профилям). Теперь, когда я написал и протестировал свою простую пользовательскую задачу sbt (назовем ее interpolateParameters), я хочу, чтобы она выполнялась между копированием ресурса и созданием jar при запуске sbt assembly. Однако я не могу найти никакой документации о том, какие задачи выполняются «под капотом» задачи assembly, предоставляемой плагином sbt-assembly. И на самом деле я сомневаюсь, что это вообще возможно.

Поэтому у меня есть 2 вопроса: возможно ли каким-либо образом выполнить мою задачу между sbt assembly compile + copyResources и шагами "create jar"? И если нет, то есть ли способ достичь того, чего я хочу, без создания собственного форка из плагина sbt-assembly?

1 Ответ

0 голосов
/ 08 октября 2019

Я решил это с помощью assembly зависит от моей задачи interpolateParameters, а interpolateParameters зависит от products. Вот часть моего получившегося файла build.sbt с решением:

lazy val some<oduleForFatJar = (project in file("some/path"))
  .dependsOn(
    someOtherModule % "test->test;compile->compile"
  )
  .settings(
    name := "some module name",
    sharedSettings,
    libraryDependencies ++= warehouseDependencies,
    mainClass in assembly := Some("com.xxxx.yyyy.Zzzz"),
    assemblyJarName in assembly := s"some_module-${version.value}.jar",
    assembly := {
      assembly dependsOn(interpolateParameters) value
    },
    interpolateParameters := {
      interpolateParameters dependsOn(products) value
    },
    (test in assembly) := {}
  )

Надеюсь, он кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...