Апач Гамп
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2021 г. ) |
Apache Gump — это с открытым исходным кодом система непрерывной интеграции , целью которой является создание и тестирование всех Java-проектов с открытым исходным кодом каждую ночь. Его цель — убедиться, что все проекты совместимы как на уровне API, так и с точки зрения соответствия функциональности спецификациям. Он размещен по адресу gump.apache.org
и запускается каждую ночь на официальной Sun JVM .
История
[ редактировать ]Gump был создан Сэмом Руби на основе его опыта работы в сообществе Perl . Первоначально он был написан на Java .
Текущая живая версия Gump 3 полностью переписана на Python .
Использование
[ редактировать ]Чтобы присоединиться к Gump, проект должен предоставить два XML-файла. Один описывает, как получить доступ к действующему репозиторию CVS или Subversion ; другой, что собирать из репозитория, и какие артефакты создавать. Каждый проект может зависеть от других проектов; эти зависимости объявляются для того, чтобы Гамп знал правильный порядок сборки.
Гамп может создавать сценарии оболочки , проекты Ant и Maven 1 , соответствующим образом настраивая путь к классам . В Ant и Maven 1 встроены специальные перехватчики, позволяющие Гампу полностью контролировать пути к классам, используемые для создания и тестирования приложений. Это позволяет Gump собирать проекты на основе последних версий, даже если собственные файлы сборки проекта имеют жестко закодированные зависимости от статических библиотек в их собственном репозитории CVS или Subversion.
Если сборка на Gump прошла успешно, на сайте размещается отчет, и все проекты, объявившие себя зависимыми, допускаются к сборке. Если проект не удается собрать, публикуются отчеты об ошибках, отправляется электронное письмо об ошибке, а сборка всех зависимых проектов блокируется.
Ограничения
[ редактировать ]- Не существует другого способа заставить разработчиков принять меры в соответствии с электронным письмом, в котором вы нарушили сборку , кроме неформального давления со стороны коллег.
- Пока не будет добавлена поддержка Maven , многие проекты Java невозможно будет собрать. Все последующие проекты могут основываться только на Gump со статическими версиями предыдущих выпусков, что исключает возможность сборки и тестирования ночного кода, что является одной из ключевых особенностей проекта.
- Может быть сложно определить, почему что-то не удалось, поскольку разработчики проектов, созданных Gump, не имеют доступа к машине, а только еженощные отчеты о состоянии.
- Поскольку это открытый сервис для всех проектов с открытым исходным кодом, проект вложил меньше усилий в упрощение установки новой установки Gump, что затрудняет частное использование. В частности, не существует автоматического способа предоставления на сервер Gump статических файлов JAR, от которых зависят многие проекты.
- Если фундаментальный проект, такой как Ant , Xerces или JUnit, не удается собрать, то большая часть Gump блокируется до тех пор, пока не будет сделано исправление. В зависимости от характера неисправности эта процедура может быть быстрой или занять больше времени. [1]