Очистка устаревших файлов .class с помощью Apache Ant - PullRequest
4 голосов
/ 04 ноября 2010

Как очистить устаревшие .class файлы из ${workdir} данного набора существующих .java файлов в ${srcdir}? Под устаревшими я имею в виду .class файлы, которые были сгенерированы из удаленных .java файлов. Я пытался что-то придумать, используя Ant mappers, наборы файлов и т. Д., Но мне это не удалось. Удаление всех файлов .class старше их соответствующих исходных файлов .java также будет приемлемо.

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Проблема заключается в определении, является ли файл класса без явно соответствующего исходного файла действительно устаревшим.

Попробуйте это в одном файле (A.java)

public class A{}
class B{}

Это приведет к A.class и B.class. Таким образом, B.class может показаться устаревшим из-за отсутствия файла Java. Вы, вероятно, получите аналогичные проблемы с любыми внутренними классами.

Самая безопасная ставка, если вы хотите убедиться, что в ней нет старых файлов классов, это просто удалить их все.

1 голос
/ 04 ноября 2010

Поскольку просто невозможно определить, что является устаревшим, а что нет, большинство сборок имеют цель clean (это также является частью cleanbuild ).Цель clean , просто удаляет все файлы из каталога build .Этот каталог обычно не версионный (svn: ignore).

Не все файлы в вашей сборке будут результатом компиляции, например файлы .property, эти файлы могут храниться в альтернативном каталоге, который будетбыть скопированы в каталог build .Например, в сборке веб-приложения вы можете сохранить эти файлы в / web / WEB-INF / classes и позволить Ant скопировать их в каталог сборки.

1 голос
/ 04 ноября 2010

Я почти уверен, что есть задача муравья убить классы старше .java ...

Зависит звучит близко и может фактически делать то, что вы хотите, но это не его предназначение. Однако, учитывая ответ от Developmentalinsanity, это может быть единственной вещью, которая действительно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...