2012-02-03 12 views
5

मैं जावा क्लास नामों को चींटी कार्यों का उपयोग करके फ़ाइल पथ में कैसे परिवर्तित करूं?चींटी: कक्षा का नाम फ़ाइल पथ में कनवर्ट करें

उदाहरण के लिए

, एक संपत्ति foo.bar.Duck युक्त मैं foo/bar/Duck.class बाहर प्राप्त करना चाहते हैं दी।

मैंने <pathconvert> और <regexpmapper> के संदर्भ में इसे लागू करने की कोशिश की (और विफल)।

उत्तर

0

एंट resources और unpackagemapper का उपयोग करके, यह एक और तरीका है, जिसे इस उद्देश्य के लिए डिज़ाइन किया गया है। विपरीत package mapper भी उपलब्ध है। बहुत सरल है

<echo message="File: ${toString:file.name}" /> 

पैदावार

[echo] File: foo/bar/Duck.class 
+0

यह समाधान काम करेंगे ** केवल ** संसाधन कहीं और पाया जा सकता है केवल और यदि। अन्यथा, [@matt] (http://stackoverflow.com/a/9135198/1099452) का समाधान करें। – lucasvc

3

यहाँ यह करने के लिए एक संभव तरीका है:

<property name="class.name" value="foo.bar.Duck"/> 

<loadresource property="file.name"> 
    <string value="${class.name}" /> 
    <filterchain> 
    <replaceregex pattern="\." replace="/" flags="g" /> 
    <replaceregex pattern="$" replace=".class" /> 
    </filterchain> 
</loadresource> 

यह file.name संपत्ति में वांछित foo/bar/Duck.class डालता है।

0

मैं इस के लिए चींटी स्क्रिप्ट जावास्क्रिप्ट का उपयोग कर लग रहा है:

<property name="class.name" value="foo.bar.Duck"/> 

<resources id="file.name"> 
    <mappedresources> 
    <string value="${class.name}" /> 
    <unpackagemapper from="*" to="*.class" /> 
    </mappedresources> 
</resources> 

आप संपत्ति सहायक वाक्य रचना ${toString:...}, जैसे के माध्यम से संसाधन मान का उपयोग

 <property name="class.name" value="foo.bar.duck" /> 
     <script language="javascript"> 
      var className = project.getProperty("class.name"); 
      println("before: " + className); 
      var filePath= className.replace("\\", "/"); 
      println("File Path: "+filePath); 
      project.setProperty("filePath", filePath);    
     </script> 
     <echo message="${filePath}" /> 

नोट: यह आपके वैरिएबल को तर्क के समान नामकरण करता है जैसे var wsPath त्रुटि दे सकता है, यह मुझे दिया गया है!

सौजन्य: https://stackoverflow.com/a/16099717/4979331

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