2010-03-16 20 views
6

Tengo un objetivo ant que echo es el contenido de un archivo eclipse .project, la idea aquí es asegurar que el proyecto es fácilmente importable en eclipse. El nombre del proyecto debe coincidir con el directorio en el que está listo. Tengo esto hasta ahorahormiga basedir y eclipse .project file generation

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

El problema es el $ {basedir} como resultado una ruta completa

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

pero ECLIPSE necesita el nombre de carpeta final

<name>MyProject</name> 

alguna idea sobre el objetivo de hormiga que debería usar para desmantelar este camino?

Respuesta

3

Primero puede definir una propiedad, basada en el último directorio de la ruta "nombre base".
(ver Ant basename Task)

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

que le permite volver a utilizar esa propiedad en el resto de la secuencia de comandos

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

que había encontrado una solución mediante la hormiga 'flattenmapper' para recortar el valor basedir

<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}" /> 

pero siempre es mejor que 1 línea de 10 líneas, ;-)

+0

Suena complicado, pero agradables comentarios. +1 – VonC