6

在文件夹 src 中,我有一组带有 java 源代码的子文件夹:

/a/A.java

/a/b/B.java

/a/b/c/C.java

我需要具有以下值的属性:

src/a/A.java,src/a/b/B.java,src/a/b/c/C.java

我尝试了以下方法:

<pathconvert property="list-of-files">
  <globmapper from="*" to="src/*"/>
  <fileset dir=${src-folder}/>
</pathconvert>

但我最终在我的财产上得到以下价值:

src/full/path/to/folder_a/a/A.java,src/full/path/to/folder_a/a/b/B.java,src/full/path/to/folder_a/a/b/c/C.java

我怎样才能完成我想要的?任何输入表示赞赏!

4

3 回答 3

8

您可以为此使用pathconvertmap的参数。

首先通过将路径附加到basedir属性值来获取 src 目录的完整路径。然后将其用作from地图的属性。

<property name="src.dir" value="${basedir}${file.separator}${src-folder}"/>
<pathconvert property="list-of-files">
  <map from="${src.dir}" to="src"/>
  <fileset dir="${src-folder}"/>
</pathconvert>
于 2011-11-28T14:19:12.267 回答
2

以防万一有人需要获取资源的相对文件路径并将它们相应地映射到 URL 路径,因此它适用于 Windows 和 *nix,解决方案是:

<pathconvert dirsep="/" pathsep=";" property="css.files.list">
    <map from="${basedir}/" to="" /><!-- This is the trick. Remove slash to make path absolute. -->
    <fileset dir="." includes="${src.dir}/**/*.css" />
</pathconvert>
于 2012-08-03T14:52:31.217 回答
0

试试这个:

<pathconvert property="list-of-files">
  <globmapper from="*" to="src/*"/>
  <cutdirsmapper dirs="N"/>
  <fileset dir=${src-folder}/>
</pathconvert>

(这里N - 要剥离的目录数(必须是正数))

或者这个:在你的一段代码之后,通过

<mapper type="flatten"/>
<flattenmapper/>

希望这有帮助=)

于 2011-11-28T13:29:13.020 回答