2011-02-17 17 views
13

जो मैं चाहता हूं वह सेटिंग कॉन्फ़िगरेशन पर निर्भर सेटिंग्स रखने का एक तरीका है। एक विशिष्ट उदाहरण देने के लिए, मेरा एंड्रॉइड एप्लिकेशन वेब सेवा से जुड़ता है। विकास में, मैं सेवा यूआरएल को विन्यास योग्य मूल्य से खींचना चाहता हूं। टेस्ट में, मैं एक अलग मूल्य खींचना चाहता हूं। उत्पादन में, अभी तक एक और मूल्य।एंड्रॉइड - बिल्ड कॉन्फ़िगरेशन बनाने के लिए चींटी का उपयोग करें जो कॉन्फ़िगरेशन मानों को बदलता है

तो, कोड में मैं कुछ इस तरह है:

public class HttpRequestHelper 
{ 
    private static String GetServiceUrl(ServiceAction action) 
    { 
     return serviceUrl + action.toString(); 
    } 
} 

डिफ़ॉल्ट रूप से (/ डिबगिंग जब ग्रहण के माध्यम से चल), मैं होने के लिए कि यूआरएल http://localhost:1234

टेस्ट में मैं चाहता हूँ चाहते https://test.mydomain.com

उत्पादन में मुझे https://mydomain.com

मैं ग्रहण और चींटी के लिए नया हूं और यह लंबे समय से रहा है क्योंकि हम एड जावा मैं इसे स्थापित करने के बारे में कैसे जा सकता हूं? Build.xml को कैसा दिखना चाहिए? मैं समझता हूं कि जब मैं परीक्षण/प्रोड संस्करण बनाना चाहता हूं तो मुझे कमांड लाइन का उपयोग करने की आवश्यकता होगी। वह ठीक है। लेकिन मुझे नहीं पता कि इस सेवा को कैसे प्राप्त करें ऑटो-सेट निर्माण पर निर्भर है। मुझे यह जानकारी भी सुनिश्चित नहीं है कि इस जानकारी को रखने के लिए सबसे अच्छी जगह (संसाधन, गुण गुण?)। मैं वास्तव में इसे स्थापित करने, निर्माण करने, इसे स्थापित करने, निर्माण करने आदि से बचना चाहता हूं।

उत्तर

9

के रूप में उपरोक्त वर्णित उत्तरों में कहा गया है कि आपको URL. devopprerties, test.properties, prod.properties आदि जैसे गुण फ़ाइल में रखना होगा ..

अब केवल एक चीज जो आपको करने की ज़रूरत है वह आपके निर्माण को समझने के लिए पर्याप्त बुद्धिमान बना रही है पर्यावरण के आधार पर एक संपत्ति फ़ाइल।

चींटी के लिए एक पैरामीटर गुजर द्वारा किया जा सकता है कि, कुछ की तरह:

$ चींटी -file MyBuild.xml -DcurrentEnv = देव (विकास पर्यावरण के लिए)
$ चींटी -file MyBuild.xml -DcurrentEnv = परीक्षण (परीक्षण के लिए)
$ चींटी -फाइल MyBuild।

<target name="jarMe"> 
    <jar destfile="sample.jar" basedir="src" includes="${currentEnv}.properties"/> 
</target> 
इस के साथ जगह में

, जो भी नाम आप निर्माण के समय में आपूर्ति: एक्सएमएल -DcurrentEnv = prod (उत्पादन के लिए)

अपने निर्माण स्क्रिप्ट के अंदर, यह कैसे आप अपनी संपत्ति फ़ाइल शामिल कर सकते है , उस नाम के साथ संपत्ति फ़ाइल उठाया जाएगा।

2

मैं यूआरएल को एक प्रॉपर्टी फ़ाइल में रखकर शुरू करूंगा जिसे आप क्लासपाथ पर रख सकते हैं। एक परीक्षण और एक उत्पादन गुण फ़ाइल बनाओ। फिर निर्माण के आधार पर सही फ़ाइल को क्लासपाथ पर रखें और गुणों को रनटाइम पर खींचें।

4

आप अपने build.properties फ़ाइल में एक निम्नलिखित संपत्ति फ़ाइल है की कोशिश कर सकते:

service.url=* 

और तुम http://localhost:1234 या https://test.mydomain.com अपने विकास और एकीकरण के परीक्षण के लिए local.properties में हो सकता था, और यह सेट किया जा सकता डिफ़ॉल्ट रूप से https://mydomain.com में .properties।

ऐसा करने से, आपको विभिन्न निर्माण वातावरण में service.url के लिए अलग-अलग मूल्य मिलेंगे। आपको लगता है कि मूल्य इस्तेमाल कर सकते हैं एक कॉन्फ़िग फ़ाइल उत्पन्न करने के लिए, और अपने कोड में पार्स, या यह सेट चर env, या सिर्फ यह संसाधन फ़ाइल में डाल दिया, और एंड्रॉयड आप के लिए इसे पढ़ा होगा:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="service-url">@@[email protected]@</string> 
</resources> 
0

एक ट्यूटोरियल मिला जो बिल्ड सिस्टम को स्वचालित करने के लिए चींटी का उपयोग करने के सभी विवरणों के माध्यम से, निर्माण कॉन्फ़िगरेशन बनाने और उपयोग करने के साथ-साथ एक कमांड के साथ रिलीज प्रोजेक्ट बनाने के लिए भी मिलता है। यहां यह है: http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html

थोड़ा लंबा लगता है, लेकिन यह शामिल सभी चरणों और विवरणों के माध्यम से जाता है।

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