【问题标题】:ant basedir and eclipse .project file generationant basedir 和 eclipse .project 文件生成
【发布时间】:2010-03-16 12:08:27
【问题描述】:

我有一个 ant 目标,它回显 eclipse .project 文件的内容,这里的想法是确保 该项目很容易导入到eclipse中。项目名称应与所在的目录匹配 它的结帐。到目前为止我有这个

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

关于我应该用来剥离这条路径的蚂蚁目标有什么想法吗?

【问题讨论】:

    标签: eclipse ant


    【解决方案1】:

    我找到了一种解决方法,使用 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 行,;-)

    【讨论】:

    • 听起来很复杂,但反馈很好。 +1
    【解决方案2】:

    您可以先定义一个属性,基于路径“basename”的最后一个目录。
    (见Ant basename Task

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

    这允许您在脚本的其余部分重用该属性

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多