Я ищу способ повысить производительность своей команды, и одним из способов сделать это было бы сокращение времени, необходимого для компиляции & unit test & package & Разверните наше приложение Java EE, которое становится все больше и больше.Удаленный компилятор Java
Тривиальное решение, которое я знаю, это создать мощный компьютер с N процессорами (N ~ = несколько разработчиков) и невероятно быструю дисковую систему и много памяти, а также запустить все на этом компьютере и подключиться к он через X удаленно. Это было бы намного быстрее, чем компиляция на наших ноутбуках, но все же дешевле и легче поддерживать, чем покупать каждому разработчику свой собственный суперкомпьютер.
Есть ли другой способ решить эту проблему? Например, можем ли мы запускать наши IDE локально, а затем сообщать об этом удаленному компилятору java-источника? Может ли Netbeans/Eclipse/IntelliJ/т. Д. Сделать это? Или есть специальный инструмент, который позволяет удаленную компиляцию java, также использующую несколько процессоров? Он не должен быть свободным/открытым исходным кодом.
К сожалению, наши ноутбуки ДОЛЖНЫ запускать (управляемую компанией) Windows Vista, поэтому еще одна причина, по которой нужно перейти на отдельный серверный компьютер, - это позволить нам использовать Linux на нем и, наконец, избавиться от раздражающей управляемой среды.
EDIT: суммировать ответы до сих пор, один из способов сократить время сборки, чтобы оставить компиляцию для разработчиков по отдельности (поскольку компиляция должен быть быстрыми), пропустите выполнения модульных тестов и горячие развернуть (без упаковки) в контейнер.
Затем, когда разработчик решает проверить его/ее код, сервер непрерывной интеграции (например, Hudson) запускается для очистки & сборки & выполнения тестов & пакета & развертывания.
РЕШЕНИЕ: Я принял ответ Торбьерна, поскольку я думаю, что это будет ближе всего к тому, как я планирую продолжить. Хотя из любопытства меня все еще интересует решение исходной проблемы (= удаленная компиляция Java) ...
@Gabor Kulcsar: Я не Java-профессионал, но, должно быть, я слышал о компиляции языка Just In Time для Java. Итак, вы говорите, что небольшое изменение в каком-то из ваших исходных кодов приведет к перекомпиляции всего приложения? Или ваше приложение слишком велико для компиляции регулярно? –
Вы действительно имеете в виду компиляцию? Я спрашиваю, потому что компиляция занимает очень мало времени. Сколько у вас классов? – Qwerky
Компиляция и единичный тест и упаковка являются минимальным требованием. Компиляция занимает наименьшее время, однако у нас есть ~ 10 проектов, которые зависят друг от друга, и мы используем Maven для создания сборки. Результатом сборки является файл EAR, который занимает около 2 минут для локального создания - плюс модульные тесты. Частичная компиляция часто не работает, и нам все равно придется переделать упаковку ... – egbokul