मेरे पास यह हैलो वर्ल्ड प्लगइन है:
object HelloPlugin extends AutoPlugin {
object autoImport {
val sayHello: TaskKey[Unit] = TaskKey("saying hello")
}
import autoImport._
override def projectSettings = Seq(
sayHello := {
println("------------------------------------ heeeeeeeeeeeeeeeelooooooooo -------------------")
}
)
}
मैं संकलन समय से पहले और बाद में अपने sayHello
कार्य का उपयोग करना चाहता हूं। मैं यह कैसे कर सकता हूं?
मुझे सापेक्ष प्रश्न मिला, लेकिन यह AutoPlugin के विस्तार के बारे में नहीं है।
2 जवाब
आपको बस उस उत्तर को अपनी स्थिति के अनुकूल बनाने की आवश्यकता है। उत्तर वही रहता है: dependsOn
का उपयोग करें, लेकिन build.sbt
के बजाय आप इसे अपने प्लगइन के projectSettings
में जोड़ें:
override def projectSettings = Seq(
sayHello := { ... },
Compile/compile := (Compile/compile).dependsOn(sayHello).value
)
आपको compile
TaskKey
को ओवरराइड करना होगा, जैसे:
override def projectSettings: Seq[Def.Setting[_]] = Seq(
compile in Compile := Def.taskDyn {
hello.value // call before
val c = (compile in Compile).value // actual compilation
Def.task {
hello.value // call after
c
}
}.value
)
def hello: Def.Initialize[Task[Unit]] = Def.task {
println("hello")
}
दस्तावेज़: https://www। scala-sbt.org/1.0/docs/Howto-Dynamic-Task.html#build.sbt+v2
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।
Compile/compile
कैसे आयात कर सकता हूं।IntelliJ Idea
मेरी मदद नहीं कर सकता। :( साथ ही, क्या मैं कंपाइल करने के बाद भी कुछ बना सकता हूँ?Compile/compile
" से आपका क्या तात्पर्य है? यदि आप sbt 0.13 का उपयोग कर रहे हैं, तो इसके बजायcompile in Compile
लिखें। कार्य के बाद कुछ करने के लिए इसे पढ़ें: scala-sbt.org /release/docs/Howto-Sequential-Task.html