З Maven у світі Java це просто
mvn clean deploy
У нашій конфігурації це робить все необхідне створення файлу WAR (витягнення залежностей від JAR у міру необхідності), розгортання на веб-сервері розробників та створення консервованих тестових даних у базі даних розробників. Після цього Maven проводить комплексне функціональне тестування через SeleniumRC для перевірки роботи програми.
Цією єдиною командою програма повністю розгортається до кластера сервера розробників, тому вона доступна для інших розробників негайно працювати з ними (припускаючи, що вона пройшла тести). Це незвично, щоб розгортання розробки не вдалося, оскільки розробники підтвердили, що він працює локально mvn clean install
.
Артефакт знімку (WAR) копіюється в сховище Maven для спільного використання з іншими розробниками (відповідно до стандартної deploy
поведінки Maven ).
Гаразд, але ви розгорнули лише знімок для розробника, а як щодо тесту та виробництва?
Розподіл на тестові та (пізніші) виробничі сервери обробляється через процес випуску Maven, який ми любимо обробляти вручну, щоб переконатися, що хтось спостерігає за будь-якими підозрілими результатами. Тестери працюють лише з випущеними артефактами, а не знімками.
Після його випуску простий сценарій збірки використовується для SFTP файлу WAR до кластера тестового сервера, знову ж таки, коли хтось спостерігає за процесом, щоб переконатися, що нічого не піде не так.
Нарешті, після того, як всі тестувальники щасливі, незмінний файл WAR SFTP'd до кластеру сервера аварійного виробництва, коли хтось пильно стежить і негайне місце відкату на місці у випадку катастрофи.