मुझे प्लगइन द्वारा प्रदान किए गए आदेशों को पहचानने के लिए एसबीटी सबप्रोजेक्ट प्राप्त करने में कोई समस्या है। मैं निम्नलिखित प्लगइन स्रोत:एसबीटी सबप्रोजेक्ट्स प्लगइन कमांड को पहचान नहीं पाते
object DemoPlugin extends AutoPlugin {
override lazy val projectSettings = Seq(commands += demoCommand)
lazy val demoCommand =
Command.command("demo") { (state: State) =>
println("Demo Plugin!")
state
}
}
जो एक परियोजना के रूप में विन्यस्त द्वारा प्रयोग किया जाता है इस प्रकार है:
lazy val root = project in file(".")
lazy val sub = (project in file("sub")).
enablePlugins(DemoPlugin).
settings(
//...
)
प्लगइन, ज़ाहिर है, है project/plugins.sbt
में सूचीबद्ध। हालांकि, जब मैं इस परियोजना में एसबीटी को खोलने, मैं निम्न देखें:
> sub/commands
[info] List([email protected])
> sub/demo
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: demo (similar: doc)
[error] sub/demo
भी अजनबी, consoleProject
का उपयोग कर, मैं देख सकता हूँ कि इस परियोजना में आदेश DemoPlugin
द्वारा परिभाषित किया गया है!
scala> (commands in sub).eval.map { c => c.getClass.getMethod("name").invoke(c) }
res0: Seq[Object] = List(demo)
मैं sub/demo
टाइप करें, और यह demo
आदेश प्रदर्शन करने के लिए सक्षम होने के लिए देख रहा हूँ। कोई भी सहायताकाफी प्रशंसनीय होगी!