मैं publish-snapshot
कमांड चाहता हूं जो संशोधित version
सेटिंग के साथ publish
कार्य चलाएगा (उस सेटिंग को आदेश के निष्पादन के समय गणना की जानी चाहिए)।कैसे एसबीटी आदेश के अंदर सेटिंग बदलने के लिए?
मुझे पता चला कि version
के अंदरूनी कमांड का वर्तमान मूल्य कैसे प्राप्त करें, और Project.runTask("task", "scope", ...)
publish
कार्य को आमंत्रित करने के लिए एक सही कॉल प्रतीत होता है।
केवल एक चीज है कि मैं के साथ भ्रमित कर रहा हूँ कैसे एक नया संस्करण मूल्य के साथ State
उदाहरण संशोधित करने के लिए है। मेरे सभी प्रयास मूल संस्करण की स्थापना करने के लिए कुछ नहीं कर रहे हैं।
मेरे आखिरी प्रयास:
val printVers = TaskKey[Unit]("printvers")
val printVersTask = TaskKey[Unit]("printvers") <<= {version map println}
def publishSnapshot = Command.command("publish-snapshot") { state =>
val newState = SessionSettings.reapply(state.get(sessionSettings).get.appendRaw(version := "???"), state)
Project.runTask(printVers in Compile, newState, true)
state
}
lazy val root = Project("main", file("."),
settings =
Defaults.defaultSettings ++
Seq(printVersTask)).settings(commands += publishSnapshot)
वहाँ कुछ रास्ता है कि व्यवहार ठीक करने के लिए है?
def publishSnapshot = Command.command("publish-snapshot") { state =>
val extracted = Project extract state
import extracted._
val eVersion = getOpt(version).get // getting current version
runTask(publish in Compile,
append(Seq(version := "newVersion"), state),
true
)
state
}
मैं '0.13.8' पर चल रहा हूँ और यह मुझे मदद की। हालांकि यह सुपर 'newState' दो बार' runTask' को इनपुट के रूप में करने के लिए अजीब लगता है। मुझे आश्चर्य है कि अगर यह जानबूझकर व्यवहार है। साझा करने के लिए धन्यवाद! – mavilein