Моя текущая команда стандартизировала NetBeans для всех наших разработок на Java, и мы используем сгенерированные NetBeans файлы ANT в качестве официального процесса сборки.
Но эти файлы всегда неправильны.
Различные члены команды используют разные версии NetBeans, и, очевидно, все они генерируют немного разные файлы "build-impl.xml".Таким образом, при запуске IDE NetBeans будет восстанавливать любой из этих файлов, который он сочтет неверным или устаревшим.
Но затем (поскольку эти файлы проверяются в системе контроля версий, как наши официальные сценарии сборки), файлы сборкиобычно не синхронизировано с хранилищем.Если я проверю автоматически созданные изменения с моего компьютера, то другой член команды в моей команде должен будет перезаписать свою собственную локальную копию сценариев сборки, из-за чего NetBeans будет жаловаться, что файлы устарели и должны бытьрегенерированный.
В основном, это раздражение.Либо ложные различия в автоматически сгенерированных сценариях сборки добавляют много шума, чтобы просеивать каждый раз, когда разработчик делает проверку.Или IDE постоянно жалуется на внешне модифицированные сценарии сборки.Вы не можете победить.
Но у меня также постоянно возникает ноющее чувство, что ни у кого нет полностью правильного сценария сборки, и мы вводим индетерминизм во весь процесс сборки.
Покакак я могу сказать, есть два возможных решения этой проблемы:
1) Стандартизация для конкретной версии NetBeans.Не позволяйте людям обновляться, пока мы, как команда, не примем решение сделать это.И не позволяйте людям отставать от старых версий.Если все в команде используют одну и ту же версию NB, то эти проблемы (вероятно) исчезнут.
2) Не проверяйте сценарий "build-impl.xml" в системе контроля версий.Он автоматически генерируется IDE и поэтому является артефактом файлов "build.xml" и "project.xml".Сгенерированные файлы (например, файлы «.class») не должны быть возвращены в систему управления версиями, а должны быть регенерированы в процессе сборки.Выясните, какой механизм использует NetBeans для создания файла «build-impl.xml», и запустите этот же механизм на нашем сервере сборки.Значит ли это, что нашему серверу сборки придется полагаться на графический интерфейс NetBeans?Я надеюсь, что нет.
Что вы, ребята, думаете?Как правильно решить эту проблему?