标签: fileset

如何将文件集打印到文件,每行一个文件名?

我有一个填充的文件集,我需要将匹配的文件名打印到文本文件中.

我试过这个:

<fileset id="myfileset" dir="../sounds">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<property name="sounds" refid="myfileset" />
<echo file="sounds.txt">${sounds}</echo>
Run Code Online (Sandbox Code Playgroud)

它将所有文件打印在一行中,以分号分隔.我需要每行一个文件.如何在不诉诸OS命令或编写Java代码的情况下完成此操作?

更新:

啊,应该更具体 - 列表不得包含目录.无论如何,我将ChssPly76标记为已接受的答案,因为pathconvert命令正是我所缺少的.要剥离目录并仅列出文件名,我使用了"flatten"映射器.

这是我最终得到的脚本:

<fileset id="sounds_fileset" dir="../sound">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<pathconvert pathsep="&#xA;" property="sounds" refid="sounds_fileset">
    <mapper type="flatten" />
</pathconvert>

<echo file="sounds.txt">${sounds}</echo>
Run Code Online (Sandbox Code Playgroud)

ant fileset

43
推荐指数
1
解决办法
3万
查看次数

如何根据目录内容从ant文件集中排除目录

如何根据目录内容创建一个排除某些目录的ant文件集?

我使用ant来创建一个分发jar,它将每个本地化都放在不同的目录中,其中一些是不完整的,不应该被释放.

我想在目录中添加一些东西(例如一个名为的文件incomplete.flag),以便ant排除目录.然后我可以在转换完成后删除该文件,并将其包含在构建中而不修改build.xml.

鉴于此目录结构:

proj
+ locale
  + de-DE
  + en-US
  + fr-FR
Run Code Online (Sandbox Code Playgroud)

此文件集排除所有incompelte.flag文件,但如何排除包含它们的整个目录?

  <fileset dir="${basedir}">
    <include name="locale/"/>
    <exclude name="locale/*/incomplete.flag">
  </fileset>
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以编写一个ant任务,但我希望fileset能处理这个用例.

ant fileset

30
推荐指数
4
解决办法
11万
查看次数

过滤使用refid引用的文件集

我有一个文件集(从Maven Ant任务返回),它包含我需要重新打包的所有jar.此文件集由refid引用.我只想包括我们自己的罐子,所以我想过滤一下.但是,如果使用refid,Ant文件集不支持任何其他属性或嵌套标记.

例如,如果文件集是:

org.foo.1.jar
org.foo.2.jar
log4j.jar
Run Code Online (Sandbox Code Playgroud)

我想要一个仅包含的文件集

org.foo*.jar
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

ant fileset

20
推荐指数
1
解决办法
2万
查看次数

将Ant文件集转换为多个apply args

我有一些文件:

dir/foo.txt
dir/bar.txt
dir/foobar.txt
Run Code Online (Sandbox Code Playgroud)

在Ant apply任务中,我想将文件列表作为参数传递:

<target name="atask">
    <apply executable="${cmd}" parallel="false" verbose="true">
        <arg value="-in"/>
        <srcfile/>
        <arg value="dir/foo.txt"/>
        <arg value="dir/bar.txt"/>
        <arg value="dir/foobar.txt"/>

        <fileset dir="${list.dir}" includes="*.list"/>
    </apply>
</target>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我想使用文件集动态选择文件列表,该怎么办:

<fileset dir="dir" includes="*.txt"/>
Run Code Online (Sandbox Code Playgroud)

如何将此文件集转换为arg元素 - 每个文件一个?就像是:

<arg>
    <fileset dir="dir" includes="*.txt"/>
</arg>
Run Code Online (Sandbox Code Playgroud)

代替

<arg value="dir/foo.txt"/>
<arg value="dir/bar.txt"/>
<arg value="dir/foobar.txt"/>
Run Code Online (Sandbox Code Playgroud)

(此示例不起作用,因为arg不支持文件集)

ant arguments fileset

17
推荐指数
1
解决办法
6266
查看次数

如何将文件集中的所有文件作为参数添加到exec任务中?

我试图通过ant将文件夹中的所有*.cpp文件提供给c ++编译器.但我得到的不仅仅是给gpp一个包含所有文件的巨大字符串.我试图通过使用一个小测试应用程序来证明它:

int main( int argc, char**args ){
   for( --argc; argc != 0; --argc ) printf("arg[%d]: %s\n",argc,args[argc]);
}
Run Code Online (Sandbox Code Playgroud)

使用这样的ant脚本:

    <target name="cmdline">
            <fileset id="fileset" dir=".">
                    <include name="*"/>
            </fileset>
            <pathconvert refid="fileset" property="converted"/>
            <exec executable="a.exe">
                    <arg value="${converted}"/>
            </exec>
    </target>
Run Code Online (Sandbox Code Playgroud)

我的a.exe的输出是这样的:

[exec] arg [1]:.a.cpp.swp .build.xml.swp a.cpp a.exe build.xml

现在问题是:如何将文件集中的所有文件作为可执行文件的参数单独提供?

ant fileset

12
推荐指数
2
解决办法
7580
查看次数

使用Ant复制子文件夹的内容

如何使用Ant复制给定文件夹的所有子文件夹的内容?

即我有这样的文件夹结构

folder/
folder/sub1/1.txt
folder/sub1/f1/1.txt
folder/sub2/2.txt
...
Run Code Online (Sandbox Code Playgroud)

我不知道子文件夹的确切名称.我需要将所有内容复制到一个文件夹中(保持内容结构,即使用flatten将所有文件复制到一个目录中不是解决方案).我需要得到

newfolder/1.txt
newfolder/1/1.txt
newfolder/2.txt
...
Run Code Online (Sandbox Code Playgroud)

fileset是否允许以这种方式对子文件夹进行分组? **代表零个或多个目录,*不允许使用as目录名,即<fileset dir="${dir}/*/" />不可接受.

谢谢,Yury

ant copy fileset

10
推荐指数
1
解决办法
9148
查看次数

如何在uptodate Ant命令中使用filelist作为文件集?

我有一个目标,build.xml它创建一个Zip文件.为了避免在没有更新文件的情况下创建Zip,我想事先检查更新.AFAIK,uptodate是使用的任务.

以下是相关(简化)脚本部分:

<filelist id="zip-files">
<file name="C:/main.exe" />
<file name="D:/other.dll" />
</filelist>

<target name="zip" depends="zip-check" unless="zip-uptodate">
<zip destfile="${zip-file}" >
    <filelist refid="zip-files" />
</zip>
</target>

<target name="zip-check">
 <uptodate property="zip-uptodate"
           targetfile="${zip-file}">
    <srcfiles refid="zip-files" />
 </uptodate>
</target>
Run Code Online (Sandbox Code Playgroud)

但是,uptodate失败因为srcfiles必须引用a fileset,而不是a filelist.仍然,我不能使用a,fileset因为它需要一个dir属性,我无法设置,因为源文件不共享基目录.

当然,我可以在压缩它们之前将所有文件复制到公共目录,从而能够使用fileset,但我想知道是否有替代解决方案.

我正在使用Ant 1.8.1

ant dependencies fileset filelist

10
推荐指数
1
解决办法
4119
查看次数

嵌套路径和文件集之间有什么区别?

我一直在谷歌搜索"文件集和路径之间的差异"文章一段时间,但没有发现任何有用的东西.例如,以下内容之间的区别是什么(例如,有一个someDir目录,其中包含.jar文件且没有子目录):

<path id="somePathId">
    <pathelement path="someDir"/>
</path>

<path id="someId">
  <path refid="somePathId" />
</path>
Run Code Online (Sandbox Code Playgroud)

<path id="someId">
  <fileset dir="someDir">
     <include name="*.*">
  </fileset>
</path>
Run Code Online (Sandbox Code Playgroud)

ant path fileset

10
推荐指数
1
解决办法
9575
查看次数

如何使Ant INCLUDE文件集优先于EXCLUDE

如果我有这样的文件集:

<fileset dir=".">
  <exclude name="classes/*"/>
  <include name="**/zar.class"/>   
</fileset>
Run Code Online (Sandbox Code Playgroud)

排除优先于include,我不会以任何类结束.[因为对于这个假设的例子,zar.class在类dir中]我想包含zar文件,即使它在类dir中.

我暂时对抗这个问题,阅读有关选择器,模式集,文件集,尝试组合文件集等但无法使其正常工作.

有人知道怎么做吗?

ant include fileset

9
推荐指数
2
解决办法
1万
查看次数

如何将Ant中的文件集拆分为多个集合

我有一组文件,我在一个蚂蚁构建中,我想要分成相同大小的子集.

在不添加自定义任务的情况下,在Ant中执行此操作的简单方法是什么.

例:

文件集包含

TestOne.java
TestTwo.java
TestThree.java
TestFour.java
TestFive.java
TestSix.java
Run Code Online (Sandbox Code Playgroud)

我想要3个文件集

Fileset1

TestOne.java
TestTwo.java
Run Code Online (Sandbox Code Playgroud)

Fileset2

TestThree.java
TestFour.java
Run Code Online (Sandbox Code Playgroud)

Fileset3

TestFive.java
TestSix.java
Run Code Online (Sandbox Code Playgroud)

ant split fileset

6
推荐指数
1
解决办法
2728
查看次数

标签 统计

ant ×10

fileset ×10

arguments ×1

copy ×1

dependencies ×1

filelist ×1

include ×1

path ×1

split ×1