муравей продолжает перекомпилироваться - PullRequest
0 голосов
/ 27 января 2010

Я ожидал, что ant выяснит, когда не нужно перекомпилировать устаревшие файлы - к сожалению, это продолжается. Моя цель сборки содержит только:

<javac srcdir="configuration" destdir="${build_env}">
  <compilerarg value="-Xlint"/>
</javac>

В подробном выводе муравья я получаю:

conf:
[javac] MissingConfigurationException.java added as MissingConfigurationException.class doesn't exist.
[javac] TestConfiguration.java added as TestConfiguration.class doesn't exist.
[javac] TestConfigurationStorage.java added as TestConfigurationStorage.class doesn't exist.
[javac] Compiling 3 source files to /blah/build

но они существуют и доступны в каталоге "/ blah / build / com / blah / configuration / ...".

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 27 января 2010

Я видел это в прошлом, когда класс определен в месте, отличном от пакета, который был объявлен в файле .java.

Например, если мы смотрим на файл в com / stackoverflow / ant / error с именем AJavaFile.java. Лучше иметь пакет, определенный как:

package com.stackoverflow.ant.error;

или компилятор javac поместит его в другое место, чем ожидается в объявлении пакета.

0 голосов
/ 26 января 2013

Была такая же проблема.

Вы должны попробовать указать путь к месту расположения ваших файлов, из которого запускается ant, а не только относительный каталог внутри него.

Похоже, что javac не может правильно определить пакеты, если они не совпадают с теми, что указаны в вашей сборке, начиная с того, как вы их указали. И поэтому он просто компилирует все в этих случаях. Этот вид имеет смысл, если задуматься, несмотря на некоторые недостатки. Пути в том, что уже построено, должны точно соответствовать тому, что должно быть скомпилировано. Он просто не может заглядывать в будущее и разрешать полные пути, когда ему не предписано запускаться из того же базового каталога, который записан в каталог «build».

Если ваш код в / blah / build / com / blah / configuration / ..., попробуйте

<javac srcdir="/blah/" destdir="${build_env}">
  ...
</javac>

или

<javac destdir="${build_env}">
  <src path="blah/"/>
  ...
</javac>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...