您好,我正在通过 eclipse 运行一个 ant 任务,该任务生成一些代码,但我收到的错误是在参数检查上
build/classes is not a readable directory
相关代码是:
if (!destDirectory.isDirectory()) {
error(destDirectory.toString() + " is not a readable directory");
}
我在 Windows 7 下执行此操作,该文件夹位于 svn 下,并且是带有 VirtualBox 的 CentOS 的共享文件夹。该目录是由另一个 ant 任务创建的,该任务只执行 mkdir
。
我正在运行有用户,但 UAC 关闭,并且到目前为止我可以告诉不应该有任何权限问题。
编辑:
ant 文件的某些部分:
<project name="xpto" default="compile" basedir=".">
<target name="prepare">
<echo message="Preparing the project for build..."/>
<mkdir dir="${classes.build.rel-dir}"/>
<mkdir dir="${db.rel-dir}"/>
<mkdir dir="${build.rel-dir}" />
<mkdir dir="${dist.dir}" />
</target>
<property name="src.rel-dir" value="src"/>
<property name="build.rel-dir" value="build"/>
<property name="classes.build.rel-dir" value="${build.rel-dir}/classes"/>
<target name="instrument-classes" depends="compile">
<dml-post-processor dir="${classes.build.rel-dir}">
<fileset file="${dml.rel-file}"/>
<classpath refid="project.classpath" />
</dml-post-processor>
</target>
</project>
所以我认为路径是正确的并且将使用./build/classes
编辑:
instrument-classes:
[echo] Injecting FenixFramework Voodoo Magic...
[echo] path -> build/classes
在 ${classes.build.rel-dir}
上运行 echo
的输出
最佳答案
我在使用 eclipse 的 ant-plugin 时使用熟悉的框架(fenix)遇到了这个问题。事实上,该插件似乎是从另一个不同的目录“运行”ant。 尽管如此,从命令行(在 windows7 中)运行 ant 似乎对我有用。
因此,解决方案是在 build.xml 脚本中使用 ${basedir} 变量来定义明确的路径。
示例:
<property
name="dir.project.java"
value="${basedir}/src/project/" />
而不是:
<property
name="dir.project.java"
value="src/project/" />
抱歉,回复过时了。
关于java - isDirectory 对于 svn 下文件夹上的 ant 任务返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941249/