муравей basedir и затмение .project поколение файла

У меня есть целевой объект Ant, что эхо содержание затмения .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>

Какие-либо идеи о целевом объекте Ant я должен использовать для разделения этого пути?

6
задан emeraldjava 16 March 2010 в 12:08
поделиться

2 ответа

Можно сначала определить свойство, основанное на последнем каталоге пути "basename".
(см. Ant basename Task)

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

Это позволит вам повторно использовать это свойство в остальной части вашего скрипта

<projectDescription>
    <name>${project.name}</name>
3
ответ дан 17 December 2019 в 00:07
поделиться

Я нашел обходной путь, используя ant 'flattenmapper' для обрезки значения 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}" />

но 1 строка всегда побеждает 10 строк, ;-)

4
ответ дан 17 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: