[java] ant warning: "'includeantruntime' не был установлен"


Answers

Как отметил @Daniel Kutik, PreSetDef - хороший вариант. Особенно если вы работаете над проектом со многими файлами build.xml которые нельзя или предпочитает не редактировать (например, для сторонних разработчиков).

Чтобы использовать presetdef , добавьте эти строки в файл build.xml верхнего уровня:

  <presetdef name="javac">
    <javac includeantruntime="false" />
  </presetdef>

Теперь все последующие задачи javac существу наследуют includeantruntime="false" . Если вашим проектам действительно нужны includeantruntime="true" , вы можете либо добавить их явно в свои файлы сборки, либо установить includeantruntime="true" . Последний также избавится от предупреждений.

Последующие javac задачи могут по-прежнему явно изменять это, если это необходимо, например:

<javac destdir="out" includeantruntime="true">
  <src path="foo.java" />
  <src path="bar.java" />
</javac>

Я бы рекомендовал использовать ANT_OPTS . Он работает, но он побеждает цель предупреждения. Предупреждение говорит, что одна из построений может вести себя по-другому в другой системе. Использование ANT_OPTS делает это еще более вероятным, потому что теперь каждая система должна использовать ANT_OPTS таким же образом. Кроме того, ANT_OPTS будет применяться во всем мире, подавляя предупреждения во всех ваших проектах

Question

Я получаю следующее предупреждение:

[javac] build.xml:9: warning: 'includeantruntime' was not set, 
defaulting to build.sysclasspath=last; set to false for repeatable builds

Что это значит?




Ответ от Даниила просто идеален. Вот пример фрагмента, который я добавил в свой файл build.xml:

<target name="compile">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
                                                 <!--   ^^^^^^^^^^^^^^^^^^^^^^^^^  -->
        <classpath>
            <path id="application" location="${jar.dir}/${ant.project.name}.jar"/>
            <path id="junit" location="${lib.dir}/junit-4.9b2.jar"/>
        </classpath>
    </javac>
</target>



Используйте <property name="build.sysclasspath" value="last"/> в файле build.xml

Для более детального поиска: includeAntRuntime в Ant javac

Другие возможные значения можно найти here






Related