2010-03-16 97 views
6

我有一個螞蟻目標回聲的eclipse .project文件的內容,這裏的想法是確保 該項目很容易導入到eclipse。項目名稱應與其結賬目錄 匹配。我有這個迄今爲止螞蟻basedir和eclipse .project文件生成

<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> 

但是Eclipse只需要最後的文件夾名稱

<name>MyProject</name> 

任何想法上我應該用螞蟻目標來剝奪這條道路?

回答

3

您可以首先根據路徑「basename」的最後一個目錄定義一個屬性。
(見Ant basename Task

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

這允許你使用ant「flattenmapper」修剪BASEDIR值重用財產

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

我找到了一個解決方法腳本的其餘部分

<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 2010-03-16 15:36:59