2014-10-07 5 views
2

Мы страдаем от чрезвычайно сложного процесса сборки для нашего флагманского веб-приложения. У нас есть файл POM Maven, который включает в себя следующее:Надлежащий Maven POM etiquette

  • Два полных установки веб-сервера
  • Полный (и огромный) JavaScript библиотека сборки (применение совершенно отдельный Ant сборки)
  • Полная загрузка и монтаж из базы данных двигателя
  • Настройки построить несколько различных «ароматов» приложения
  • Настройки для запуска модульных тестов, Selenium тесты, как и ни

Недостатком всего этого является то, что когда что-то взрывается, может потребоваться несколько часов или дней, чтобы найти проблему.

Есть ли какие-либо официальные или неофициальные рекомендации, которые говорят, что следует или не следует включать в Maven POM? Или это просто «если вы можете поместить его, застряв там?»

+4

Рассмотрите это: с вашим проектом, соответствующим модулю, что вы можете начать переходить в свои собственные хранилища? – Makoto

+0

Что делать, если проект не является модульным? Что, если это гигантский монстр-спагетти? – user3120173

+1

Единственный способ исправить гигантского монстра-спагетти - это один укус за раз. Найдите одну часть, которую вы можете втянуть в отдельный модуль. Переместите его код и связанные с ним плагины Maven в отдельный проект. Добавьте агрегатор агрегата для повторной работы всей сборки. Затем вытащите другую часть в отдельный модуль. Промыть и повторить. Это может показаться ошеломляющим, но если вы не начнете, это не улучшится. – user944849

ответ

0

Проблема не связана непосредственно с Maven. Вы должны основывать свой процесс сборки на хорошо установленных правилах. Вы можете начать с чтением Implementing build and release best practices with Rational Build Forge software. Они определяют 10 хороших практик

  • Практик один: разработка стратегии управления сборкой
  • Практик два: установить полные воспроизводимости
  • Практики три: автоматизировать процессы и интегрировать основные системы
  • Практика четыре: внедрить централизованный доступ и сотрудничество для всех заинтересованных сторон
  • Практика пять: процессы сборки ссылок в средах развертывания
  • Практика шесть: показатели использования для оценки прогресса и эффективности
  • Практика семь: применять методы построения ускорения
  • Практика восемь: абстрактные процессы и метаданные из физических ресурсов
  • Практика девять: оптимизации процессов и поддерживающих дизайн архитектуры
  • Практика десять: строить рано и часто

Даже если Maven не используется в этом документе, это может дать вам представление о том, что делать.