2013-01-20 16 views
12

में शीर्ष जवाब में Play Framework 2: Read the application version defined in Build.scala को यह सुझाव दिया जाता है कि आवेदन संस्करण संख्या conf/application.conf में निर्दिष्ट और play.api.Configuration के माध्यम से Build.scala में लोड किया। मैं Play 2.1-RC2 उपयोग कर रहा हूँ और निम्न त्रुटि संदेश हो रही है जब निर्माण:प्ले फ्रेमवर्क 2.1: उपयोग play.api.Configuration Build.scala

[error] [...]/project/Build.scala:7: object Configuration is not a member of package play.api 
[error] val conf = play.api.Configuration.load(new File(".")) 

मैं इस तथ्य यह है कि एसबीटी के लिए प्लग-इन के रूप में निर्दिष्ट किया जा करने के लिए प्ले 2.1 निर्माण निर्भरता के साथ है के कारण हो सकता लगता है, और play.api.Configuration हिस्सा नहीं है प्ले की एसबीटी प्लगइन का। मुझे लगता है कि मुझे project/plugins.sbt में प्ले के मूल पुस्तकालयों को शामिल करना है, लेकिन मैं यह समझने में सक्षम नहीं हूं कि कैसे। कोई विचार?

(ध्यान दें: इस मूल प्रश्न में एक टिप्पणी की है अगर मैं पर्याप्त प्रतिनिधि अंक था)

उत्तर

24

मैं 2.1-RC2 में काम करता है अगर आप typesafe के config पुस्तकालय सीधे का उपयोग, प्ले के Configuration आवरण के बिना। यह जावा एपीआई है, इसलिए इसे this answer में वर्णित से थोड़ा अलग इस्तेमाल किया जाता है।

project/Build.scala में पुस्तकालय आयात:

import com.typesafe.config._ 

और मैन्युअल रूप से फ़ाइल से विन्यास लोड। प्रतिस्थापन को हल करने के लिए resolve() पर कॉल करना आवश्यक है।

val conf = ConfigFactory.parseFile(new File("conf/application.conf")).resolve() 

val appName = conf.getString("app.name") 
val appVersion = conf.getString("app.version") 
+0

यह काम करता है, धन्यवाद। देर से प्रतिक्रिया के लिए माफ़ी। – user1995521

+2

सावधान रहें! Play-2.1.x के 'appName' में बिंदुओं और रिक्त स्थान का उपयोग न करें। या 'java.lang.ExceptionInInitializerError' को नमस्ते कहें। – HEX

+0

@kapep: क्या आप इस प्रश्न को देखना चाहते हैं और अंत में कुछ सुझाव देना चाहते हैं? http://stackoverflow.com/q/21133830/1066240 – biesior

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