Разработка решения Brad Turek ... Один из шаблонов проектов IntelliJ Java по умолчанию ожидает файл Main, определяющий точку входа метода класса Main и main () . Если метод содержится в другом файле (и классе), измените конфигурацию запуска:
Как уже отмечалось, вы должны использовать ReBuild с использованием новой конфигурации. Я использую пакет, но это не похоже на IME. Надеюсь, это поможет.
Вот стратегия, которую я использую. Я развиваю в главном багажнике. Когда программное обеспечение выпущено, я его величию (скажем, v1.0). Когда ошибки входят, закрепите в багажнике ветви, а затем объединитесь обратно в главный ствол. Вот хороший финал стратегий, которые доступны: http://www.cmcrossroads.com/bradapp/acme/branching/branch-tructs.html
Не уверен, что это обычная стратегия, но мы все работаем над стволом, а затем исправляем багфекты бэкпорта в ветках релиза. Наш основной ствол всегда "нестабилен", и когда мы чувствуем, что у нас есть ствол в состоянии выпуска, мы включаем его в ответвление выпуска. С этого момента исправления buyfixes переносятся обратно в ответвление выпуска, и новая функциональность добавляется только в ствол. Это означает, что вы можете запустить ваше ответвление выпуска через тестирование и сосредоточиться на тестировании исправлений ошибок.
Я бы не рекомендовал разветвление на каждую сообщенную ошибку . Как вы сказали, вы можете не решить исправлять каждую сообщённую ошибку, что означало бы, что в какой-то момент у вас будет много мёртвых ветвей, которые нужно будет обрезать.
Если ваши инструменты и язык поддерживают это, то создание ответвлений на каждую ошибку, которую вы решили исправить (и функцию, которую вы решили реализовать), является неплохой идеей. Она позволяет вам разрабатывать и тестировать каждое исправление/функцию, когда у вас есть бюджет и график для этого, и сливать их обратно в ствол, когда вы будете готовы.
Мы разделяем Наши ветви в версиях / освобождение продукта, так что каждый выпуск имеет свою ветку. Выпуск из филиала проверяется, и поэтому нам нужно только тестировать исправления, применяемые к этой ветви.
Дополнительно каждая версия продукта имеет dev и основную ветку. Разработчики разрешено свободно обязывать ветку Dev, не боясь вмешиваться в релиз (только другие разработчики!)
У нас такая же проблема (или почти), и я думаю, что каждая команда разработчика имеет его. Я могу, к сожалению, еще не даст вам ответ по опыту, а только теоретический.
На мой взгляд, до тех пор, пока это исправлена ошибка, его следует развернуть как можно скорее. Что я собираюсь реализовать, представляет собой функцию отраслевой стратегии и отрывной ветви. Это означает, что мы должны дифференцировать особенности от ошибок. А то, что развертывается разветвляется отдельно (или помечено в нашем случае)
, выполнив это, вы все равно можете работать на багажнике для ошибок и развернуть их на свой тестирующий сервер, и после того, как оно тестируется и одобрено ветвь Отпустите ветку и разверните его. Вы также можете объединить ошибку исправлений в вашу функциональную ветку или попытаться объединить функцию позже, когда вы планируете развернуть его на сервер тестирования.
В любом случае, самое важное, что я думаю, это отразить длинную работу, которая мешает вам развертывать меньшие исправления ошибок. Если вы слишком много вешаетесь, у вас будет проблема слияния. Если вы не достаточно ветвиетесь, у вас будет проблем гибкости развертывания.
Если вы не используете распределенные SCM (Mercurial, Git, ...), где разветвление в основном свободно, ветвясь на каждую ошибку звучит как необоснованное количество работы.
Обычная стратегия с центральным репозиторием SCM состоит в том, чтобы отметить редакцию, который должен исправить ошибку, и тестировать на сборку, сделанную с более поздним пересмотром. Затем вы можете объединить соответствующую версию обратно в отзыв.
Мы используем Mercurial, и разветвляясь, чтобы исправить ошибки, а затем слияние изменений назад довольно выполняется в распределенном SCM
Это зависит от вашей системы управления версиями. Если вы используете GIT, где филиалы дешевы и слияния легко, то я определенно создал бы новую ветку для каждого исправления. Это позволяет поддерживать исправления ошибок независимы друг от друга, что позволяет большей гибкости по отношению к тому, что объединяется в мастер / багажник, а когда.
С другой стороны, если вы используете Subversion, филиалы дороже (с точки зрения создания и переключения / обновления) и слияние сложнее. Часто отношение затрат / выгодов новой ветви не достаточно высоки (особенно для небольших ошибок), чтобы сделать его стоящим.
Один Режим операций состоит в том, что развернутое программное обеспечение живет в отдельной отрасли, которая получает только исправления. Где вы на самом деле развиваете эти исправления, в основном неактуальны; Чтобы избежать вмешательства в текущее развитие, имеет смысл разрабатывать исправление на вершине «живой» филиала, затем проверьте / комбинируйте / развернутые в живую систему, и Aftewards объединяет фиксацию обратно в багажник.