Удаление определенных классов при запуске внешнего инструмента в Eclipse?
Я установил внешний инструмент (sablecc) в eclipse (3.4), который генерирует группу классов в текущем проекте. Мне нужно запустить этот инструмент и регенерировать эти классы довольно часто. Это означает, что каждый раз, когда я хочу запустить sablecc, мне нужно вручную удалять пакеты / классы, которые создает sablecc, чтобы избежать конфликтов между старым и новым сгенерированными классами. Есть ли какой-нибудь простой способ автоматизировать это из затмения или иным образом?
3 ответа
Не уверен, правильно ли я понимаю вашу точку зрения, я полагаю, вам нужно удалить старые классы перед запуском sablecc, потому что некоторые из них в конечном итоге не будут созданы при новом запуске.
Вероятно, лучше написать короткий Ant build.xml с целью, которая сначала удаляет классы (задача удаления Ant), а затем запускает sablecc (задача Ant exec). Также возможно предварительно настроить eclipse, чтобы он обновлял рабочее пространство после завершения Ant.
Поместите build.xml в любое место проекта, щелкните правой кнопкой мыши Run As / Ant Build.
Просто ради чистого стиля вы могли бы затем вызвать sablecc с его задачей Ant (реализованной org.sablecc.ant.taskdef), вместо того, чтобы запускать его извне в новом процессе.
Вы можете указать Eclipse обновить рабочее пространство (или его части) после запуска внешнего инструмента. Это должно заставить Eclipse обнаруживать любые новые / удаленные классы.
JesperE ссылается на опцию Обновить-> Обновить ресурсы по завершении в вашей конфигурации внешних инструментов для запуска sablecc.