如何将类路径变量回显到文件



我正在尝试获取主类路径上的所有内容,以便由我的Ant构建脚本写入文件

<path id="main.class.path">
    <fileset dir="${lib.main.dir}">
        <include name="**/*.*"/>
    </fileset>
</path>

当我将鼠标悬停在main.class.path上时,Ant/Eclipse会启动一个工具提示,显示该类路径上的项目:

C: \Users\myUser\workbench \eclipse\workspace\myProj\lib\main\ant-junit-1.6.5.jar

等等。(实际名单上有大约30个JAR。)

我希望将此列表写入dist/目录下名为deps.txt的文件中

我被卡住了,因为我不知道如何使main.class.path成为Ant变量,或者如何至少在<echo>任务中访问它:

<echo file="${dist.dir}/deps.txt" message="${???}"/>

我是不是离基地很远,甚至很近?!?

对于那些不回答这个问题的人来说,他们只会评论你为什么要这么做,我的答案很简单:我只想在我的JAR中有一个小的文本文件,作为它的依赖项的视觉提醒(对我未来的我来说)。

试试这个:

  <pathconvert property="expanded.main.class.path" refid="main.class.path"/>
  <target name="everything">
    <echo message="${expanded.main.class.path}"
          file="${dist.dir}/deps.txt"/>
  </target>

直接通过:

<echo file="${dist.dir}/deps.txt">${ant.refid:main.class.path}</echo>
<!-- or -->
<echo file="${dist.dir}/deps.txt">${toString:main.class.path}</echo>

${ant.refid:main.class.path}或${toString:main.class.paath}是一个csv属性,它包含路径中的所有项目,其嵌套文件集(通常是资源集合)用";"分隔
请参阅Ant手动属性和PropertyHelpers
如果您想要另一个分隔符,则需要使用具有pathsep attribute的pathconvert,即对于deps.txt中每个文件后面的新行,请使用pathsep="${line.separator}"

相关内容

  • 没有找到相关文章

最新更新