0

addCommandAlias("release", ";clean ;release")などのいくつかのアプローチと、次のようなものを試しました。

ReleaseKeys.releaseProcess ~= {
   (seq: Seq[ReleaseStep]) =>
    cleanStep +: seq
}

ここで、cleanStep は次のようになります。

lazy val cleanStep = ReleaseStep(
    action = st => Project.extract(st).runTask(clean, st)._1
)

lazy val cleanStep = ReleaseStep(
    action = st => Project.extract(st).runAggregated(clean, st)
)

基本的に、これらのアプローチはどれも機能しません。 runTask単純な built.sbt ビルドでは問題なく動作しますが、マルチモジュール ビルドでは動作しないようです。

何か案は?

ありがとう!

4

1 に答える 1

1

これはうまくいきました。runAggregated が何をすべきかよくわかりません。私はそれがこれがすることをするだろうと思ったでしょう。とにかく、これは直感的に理にかなっています。何かが足りない気がするので、提案はまだありがたいです。

  lazy val cleanStep = ReleaseStep(
    action = st => {
      implicit val display = Project.showContextKey(st)
      val session = Project.session(st)
      val structure = Project.structure(st)
      (structure.allProjectRefs foldLeft st) {
        case (s: State, p: ProjectRef) =>
          Extracted(structure, session, p).runTask(clean, s)._1
      }
    }
  )
于 2012-11-01T11:00:05.723 に答える