2012-10-31 24 views
0

我已經嘗試了一些辦法,如addCommandAlias("release", ";clean ;release"),以及喜歡的東西:如何在發佈之前讓sbt-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對於一個簡單的build.sbt版本工作正常,但似乎不適用於多模塊版本。

任何想法?

謝謝!

回答

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 
     } 
    } 
) 
相關問題