?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
Детей без родителей надо убивать.
nyaload
_winnie
Какие системы сборки умеют корректно удалять результирующие файлы, для которых уже нет источников? Без clean && rebuild-all, а оставляя билд инкрементальным.

maven явно пишет в документации, что не умеет корректно определять что jar надо перепаковать, и поэтому пакует всегда. Наверное, потому что на Java так сложно сравнить равны ли два списка, и потому что сборку java->class перепоручает javac который не умеет удалять .class для которых нет исходников. Зачем тогда называться сборщиком, если перепоручаешь сборку другому посредственному сборщику, у которого прямая обязанность - компиляция, а не инкрементальная сборка.

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

Если "make" != "make clean; make", то от такого make у меня батхёрт.

maven-archiver: Checking for timestamps will offer a performance gain on the cost that you get inaccurate results from time to time. In particular, removal of source files won't be detected.


  • 1
Ммм, ты точно уверен, что это про то?

По крайней мере в jamplus и в scons "precious" == "не удалять таргет до сборки/при неудачной сборке".

У меня впрочем версия последняя kjam-овская не умела precious и не запускается, а новую брать неоткуда, т.к. он похоже умер.

да, не совсем оно -- я боролся с другой ситуцией (акшн бесусловно обновлял файл и не нужно было его удалять в случае фейла)

// kjam не умер, его просто стали продавать за деньги
// ну или как договоришься

  • 1