isDirectory对svn下的文件夹上的ant任务返回false

时间:2012-03-30 10:28:32

标签: java ant

你好我正在通过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共享文件夹。该目录由另一个执行mkdir的ant任务创建。

我正在运行有用户但是关闭了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

echo

上运行${classes.build.rel-dir}的输出

1 个答案:

答案 0 :(得分:1)

在使用eclipse的ant-plugin时,我使用熟悉的框架(fenix)遇到了这个问题。事实上,该插件似乎从另一个不同的目录“运行”ant。 不过,从命令行运行ant(在windows7中)似乎对我有用。

因此,解决方案是在build.xml脚本中使用$ {basedir}变量,以获得定义良好的路径。

示例:

<property
    name="dir.project.java"
    value="${basedir}/src/project/" />

而不是:

<property
    name="dir.project.java"
    value="src/project/" />

对于过时的回复感到抱歉。