Пушыстый (_winnie) wrote,
Пушыстый
_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.
Tags: build, maven, soft-dev
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments