Непрерывная интеграция с BitBucket

Я разрабатываю частное веб-приложение в 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.

  1. Можно ли каким-то образом указать BitBucket использовать файл myApp-persistence.jar в соответствующем репозитории на BitBucket?
  2. Если да, то как? И могу ли я также указать BitBucket для развертывания непосредственно в рабочей среде, если сборка, включая тесты, прошла нормально?
  3. Если нет, как лучше всего это сделать? Я думал об использовании второго сервера разработки (уже доступного, так что ничего страшного) в качестве CI-сервера, но тогда мне все равно понадобятся некоторые советы или рекомендации по поводу того, какие инструменты (Jenkins, Artifactory и т. д.) использовать.

Возможно, одно важное замечание: я единственный человек, работающий над этим проектом, так что это может показаться излишеством, но для меня процесс настройки — довольно ценный опыт. Тем не менее, я ищу не обязательно самое быстрое решение, а самое профессиональное и удобное решение.


person JohnPlata    schedule 04.01.2017    source источник


Ответы (1)


С моей точки зрения, вы можете найти решение в этом посте-https://christiangalsterer.wordpress.com/2015/04/23/continuous-integration-for-pull-requests-with-jenkins-and-stash/ . Он шаг за шагом проведет вас, как настроить все. Пост датирован 2015 годом, но процесс и идея остались прежними. Надеюсь, поможет.

person Jing    schedule 23.10.2017