在我的Groovy程序中,我使用GroovyAntBuilder来调用Ant ReplaceRegExp任务。
def antBuilder = new AntBuilder()
antBuilder.replaceregexp(....)
然而,在Unix上,我得到了以下异常:
Could not create tempfile in /tmp
at org.apache.tools.ant.util.FileUtils.createTempFile(FileUtils.java:941)
at org.apache.tools.ant.taskdefs.optional.ReplaceRegExp.doReplace(ReplaceRegExp.java:353)
我用来运行Goovy程序的UNIX用户没有默认java临时目录的权限。当直接使用Ant时,我可以通过使用Ant_OPTS为Ant指定java.io.tmpdir来解决这个问题。
export ANT_OPTS="${ANT_OPTS} -Djava.io.tmpdir=/scratch/mydir/tmp"
问:使用Groovy代码中的GroovyAntBuilder,如何为AntBuilder指定java.io.tmpdir?
用setProperty
设置java.io.tmpdir
或通过-D
开关传递java.io.tmpdir
(例如-Djava.io.tmpdir=some_path
)有帮助吗?