2010-03-16 4 views
6

나는 이클립스 .project 파일의 내용을 echo하는 개미 대상을 가지고 있는데 여기 아이디어는 이클립스로 프로젝트를 쉽게 가져올 수 있다는 것을 의미한다. 프로젝트 이름은 체크 아웃 디렉토리와 일치해야합니다. 지금까지개미 기반 및 이클립스 .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> 

로 평가하지만 최종 폴더 이름을에

<name>MyProject</name> 

어떤 아이디어를 필요로 이클립스이에게 있습니다 개미 대상은이 길을 벗겨 내야합니까?

답변

3

"basename"경로의 마지막 디렉토리를 기준으로 먼저 속성을 정의 할 수 있습니다.
당신이 기본 디렉토리 값을 트림 개미 'flattenmapper'를 사용하여 제가 해결 방법을 발견했다

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

스크립트의 나머지 부분에서 해당 속성을 재사용 할 수

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

을 (Ant basename Task 참조)

<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