如何在Ant构建文件中使用Java?
我正在尝试编写一个自定义脚本选择器,为此我需要读取每个文件的内容 有没有一种方法可以使用java而不是javascript作为脚本选择器的语言?如果没有,有没有一种听起来很愚蠢的方法来读取文件对象如何在Ant构建文件中使用Java?,java,javascript,ant,Java,Javascript,Ant,我正在尝试编写一个自定义脚本选择器,为此我需要读取每个文件的内容 有没有一种方法可以使用java而不是javascript作为脚本选择器的语言?如果没有,有没有一种听起来很愚蠢的方法来读取文件对象 <scriptselector language="javascript"> f = self.getFile(); println(f); //how to read the File? self.setSelected(true); </scrip
<scriptselector language="javascript">
f = self.getFile();
println(f);
//how to read the File?
self.setSelected(true);
</scriptselector>
f=self.getFile();
println(f);
//如何读取文件?
自选(真);
以下是方法。大致如下:
<scriptselector language="javascript">
importPackage(java.io);
importPackage(org.apache.tools.ant.util);
fileUtils = FileUtils.getFileUtils();
f = self.getFile();
println(f);
if( f.getAbsolutePath().endsWith(".xyz") ){
fis = new FileInputStream(f.getAbsolutePath());
isr = new InputStreamReader(fis);
println('reading it!');
fileContents = fileUtils.readFully(isr);
println(fileContents);
self.setSelected(true);
}
</scriptselector>
导入包(java.io);
importPackage(org.apache.tools.ant.util);
fileUtils=fileUtils.getFileUtils();
f=self.getFile();
println(f);
if(f.getAbsolutePath().endsWith(“.xyz”)){
fis=新文件输入流(f.getAbsolutePath());
isr=新的输入流阅读器(fis);
println('reading it!');
fileContents=fileUtils.readFully(isr);
println(文件内容);
自选(真);
}
您应该能够使用任何,包括BeanShell(Java)。例如:
<script language="beanshell">
String file = "foo.txt";
InputStream is = null;
try {
is = new FileInputStream(file);
// read from stream as required
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) { /* ignore */ }
}
}
</script>
String file=“foo.txt”;
InputStream=null;
试一试{
is=新文件输入流(文件);
//根据需要从流中读取
}最后{
如果(is!=null){
试一试{
is.close();
}捕获(IOE异常){/*忽略*/}
}
}
非常感谢。我最初尝试过,但遇到了“无法为beanshell创建javax脚本引擎”错误。请参阅此答案,以添加所需的JAR来构建配置以消除该错误。非常感谢。如果我能在不将它添加到ANT的类路径的情况下让它工作——例如,在我的项目中包含那个jar并在classpathref中引用它——那么这就是一个赢家。