Что означает предупреждение Ant "Ссылка * не установлена ​​во время выполнения ..."? - PullRequest
5 голосов
/ 21 апреля 2011

После обновления с Ant 1.6.5 до 1.7.1 вывод моей сборки начинается с:

Warning: Reference project.classpath has not been set at runtime, but was found during
build file parsing, attempting to resolve. Future versions of Ant may support
 referencing ids defined in non-executed targets.
Warning: Reference project.test.classpath has not been set at runtime, but was found during
build file parsing, attempting to resolve. Future versions of Ant may support
 referencing ids defined in non-executed targets.

У меня проблемы с пониманием этого и почему оно выводится, не говоря уже о попытке избавиться от него. Любая помощь будет оценена!

EDIT:

Путь к классу определен:

<path id="project.classpath">
        <pathelement path="./${build.dir}" />
        <path refid="libs.ant" />
        <fileset dir="${lib.dir}/dependencies/bar" includes="compile/*.jar" />
        <fileset dir="${lib.dir}/dependencies/foo" includes="provided/*.jar" />
</path>

<!-- The classpath for compiling this projects' tests -->
<path id="project.test.classpath">
        <path refid="project.classpath" />
        <fileset dir="${lib.dir}/dependencies/bar" includes="test/*.jar" />
        <fileset dir="${lib.dir}/dependencies/foo" includes="test/*.jar" />
</path>

<property name="project.classpath" refid="project.classpath" />

На него ссылаются (например, в) следующим образом:

<classpath refid="project.classpath"/>

Ответы [ 3 ]

3 голосов
/ 14 июля 2011

У меня была такая же проблема раньше. Просто убедитесь, что "project.classpath" определен в начале файла сборки, прежде чем другие цели ссылаются на него. Также ваш путь "libs.ant" должен быть определен перед "project.classpath".

В Ant 1.8 это будет ошибка вместо предупреждения.

0 голосов
/ 23 апреля 2011

Если это не опечатка, это похоже на проблему. Вы действительно должны переименовать один для ясности, даже если это не является причиной предупреждения. По-прежнему звучит так, как project.classpath определено в разных целях и они вызываются в неправильном порядке Возможно, вам придется показать больше кода для получения дополнительной помощи.

<property name="project.classpath" refid="project.classpath" />
0 голосов
/ 21 апреля 2011

Вы можете установить classpath в файле сборки следующим образом, чтобы избавиться от этого предупреждения.Смотрите ссылку.http://ant.apache.org/manual/using.html

<project ... >
  <path id="project.class.path">
    <pathelement location="lib/"/>
    <pathelement path="${java.class.path}/"/>
    <pathelement path="${additional.path}"/>
  </path>

  <target ... >
    <rmic ...>
      <classpath refid="project.class.path"/>
    </rmic>
  </target>

  <target ... >
    <javac ...>
      <classpath refid="project.class.path"/>
    </javac>
  </target>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...