如何将FileSet转换为Mojo中的文件列表
问题描述:
我正在编写我的第一个Maven Mojo,其中我想采用一个文件集并处理它引用的所有文件。如何将FileSet转换为Mojo中的文件列表
在伪代码,我想该怎么办...
void myCode(org.apache.maven.model.FileSet fileSet) {
List<java.io.File> files = FileSetTransformer.toFileList(fileSet);
for (File f : files) {
doSomething(f);
}
}
那么我希望是“FileSetTransformer.toFileList”真正的代码,在我看来就像一个很平常的事想要做,但我似乎无法找到如何做到这一点。
答
谢谢emeraldjava,这给了我足够的解决我的问题的答案。
丛-utils的有一个名为fileutils中的实用工具类,你可以在上面添加一个依赖这样的:
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.1</version>
</dependency>
一旦你有文件实用程序,你可以由此实现FileSetTransformer:
public final class FileSetTransformer {
private FileSetTransformer() {
}
public static List<File> toFileList(FileSet fileSet) {
File directory = new File(fileSet.getDirectory());
String includes = toString(fileSet.getIncludes());
String excludes = toString(fileSet.getExcludes());
return FileUtils.getFiles(directory, includes, excludes);
}
private static String toString(List<String> strings) {
StringBuilder sb = new StringBuilder();
for (String string : strings) {
if (sb.length() > 0)
sb.append(", ");
sb.append(string);
}
return sb.toString();
}
}