2014-10-07 11 views
7

मैं एसबीटी v0.13.5कस्टम कार्य से runMain निष्पादित करने के लिए कैसे?

मेरी प्रोजेक्ट में, मुझे एक एसबीटी कार्य करना है जो कुछ इनपुट (एक स्ट्रिंग) स्वीकार कर सकता है, उस पर कुछ काम करें और कुछ आउटपुट वापस थूकें , एक स्ट्रिंग)। मैंने अपनी परियोजना में एक सहायक वर्ग बनाया है जो ऐसा करता है कि मैं टर्मिनल से sbt runMain (sbt "runMain com.example.utils.ClassName someArgument") के माध्यम से कॉल कर सकता हूं।

मुझे जो कुछ चाहिए वह खुद को कुछ टाइपिंग सहेजना है और यह एक एसबीटी कार्य है जो ऐसा करता है। मैं सिर्फ टाइप करने के लिए sbt doThing withStuff में सक्षम होना चाहते हैं और एक taskKey doThing उस वर्ग के नाम के साथ runMain कॉल नामित चलाने के लिए और जो कुछ भी दिया गया तर्क था।

मैं जानता हूँ कि कार्य बनाने के लिए कैसे, लेकिन मैं नहीं कर सकता प्रतीत होता है कि runMain को मेरे build.sbt में कस्टम कार्य परिभाषा से कैसे कॉल करें। क्या कोई मुझे सही दिशा में इंगित कर सकता है?

+0

http://www.scala-sbt.org/0.13.5/docs/Extending/Input-Tasks.html –

उत्तर

9
TaskKey[Unit]("myTask") := (runMain in Compile).toTask(" com.example.Main arg1 arg2").value 

runMain एक InputTask है। InputTask में 0.13.1 के बाद toTask विधि है।

+0

क्या एक देखें * * चालाक ** एक-लाइनर एक कार्य कुंजी को परिभाषित करने के लिए और ': = 'कॉल करें। –

संबंधित मुद्दे

 संबंधित मुद्दे