Я разрабатываю частное веб-приложение в JSF, которое доступно через Интернет, и теперь я достиг стадии, когда я хотел ввести CI (в котором я довольно новичок) во весь процесс. Моя текущая настройка проекта выглядит так:
- myApp-persistence: проект maven, который обрабатывает доступ к БД (DAO и спящий режим).
- myApp-core: проект maven, включающий весь код Java (Beans и Utils). Он зависит от myApp-persistence.jar.
- myApp-a: проект maven только с внешним кодом (xhtml, css, JS). Имеет зависимость от myApp-core.jar
- myApp-b: проект maven только с внешним кодом (xhtml, css, JS). Имеет зависимость от myApp-core.jar
myApp-a и myApp-b независимы друг от друга, они просто разные экземпляры ядра для двух разных платформ и по-разному отображают только определенные компоненты или вызывают разные bean-методы.
В настоящее время я развертываю вручную, т.е. использую встроенный экспорт eclipse в качестве функции войны, а затем вручную загружаю его в каталог развертывания моего сервера wildfly на prod. Я использую BitBucket для управления версиями и только недавно обнаружил конвейеры в BitBucket и реализовал по одному для каждого репозитория (каждый проект — это отдельный репо). Теперь myApp-persistence отлично строится, потому что все зависимости доступны через общедоступный репозиторий maven, но myApp-core (следовательно, myApp-a и myApp-b тоже), конечно, терпит неудачу, потому что myApp-persistence не публикуется в центральном репозитории maven.
- Можно ли каким-то образом указать BitBucket использовать файл myApp-persistence.jar в соответствующем репозитории на BitBucket?
- Если да, то как? И могу ли я также указать BitBucket для развертывания непосредственно в рабочей среде, если сборка, включая тесты, прошла нормально?
- Если нет, как лучше всего это сделать? Я думал об использовании второго сервера разработки (уже доступного, так что ничего страшного) в качестве CI-сервера, но тогда мне все равно понадобятся некоторые советы или рекомендации по поводу того, какие инструменты (Jenkins, Artifactory и т. д.) использовать.
Возможно, одно важное замечание: я единственный человек, работающий над этим проектом, так что это может показаться излишеством, но для меня процесс настройки — довольно ценный опыт. Тем не менее, я ищу не обязательно самое быстрое решение, а самое профессиональное и удобное решение.