2010-03-16 10 views
6

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

<target name="eclipse" description="creates an eclipse .project file"> 
    <echo file=".project"> 
     <![CDATA[<?xml version="1.0" encoding="UTF-8"?> 
     <projectDescription> 
      <name>${basedir}</name> 
      <comment></comment> 
      <projects> 
      </projects> 
      <buildSpec> 
       <buildCommand> 
        <name>org.eclipse.jdt.core.javabuilder</name> 
        <arguments> 
        </arguments> 
       </buildCommand> 
      </buildSpec> 
      <natures> 
       <nature>org.eclipse.jdt.core.javanature</nature> 
      </natures> 
     </projectDescription> 
     ]]> 
    </echo>  
</target> 

समस्या $ {basedir} है एक पूर्ण पथ

<name>/home/assure/projects/MyProject</name> 

का आकलन करती है, लेकिन ग्रहण केवल अंतिम फ़ोल्डर नाम

<name>MyProject</name> 

कोई भी विचार पर की जरूरत है चींटी लक्ष्य मुझे इस पथ को पट्टी करने के लिए उपयोग करना चाहिए?

उत्तर

3

पथ "बेसनाम" की अंतिम निर्देशिका के आधार पर आप पहले एक संपत्ति को परिभाषित कर सकते हैं।
(Ant basename Task देख)

<basename property="project.name" file="${basedir}"/> 

आप अपनी स्क्रिप्ट के बाकी

<projectDescription> 
    <name>${project.name}</name> 
4

मैं एक वैकल्पिक हल मिल गया था में है कि संपत्ति का पुन: उपयोग basedir मूल्य ट्रिम करने के लिए चींटी 'flattenmapper' का उपयोग की अनुमति देता है कि

<path id="basedir.path"> 
     <pathelement path="${basedir}" /> 
    </path> 
    <pathconvert property="project.name" refid="basedir.path"> 
     <chainedmapper> 
      <mapper type="flatten"/> 
      <flattenmapper/> 
     </chainedmapper> 
    </pathconvert> 
    <echo message="${project.name}" /> 

लेकिन 1 पंक्ति हमेशा 10 लाइनों, ;-)

धड़कता है
+0

जटिल लगता है, लेकिन अच्छी प्रतिक्रिया। +1 – VonC

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