Не турбуйтеся з архетипами до пізніше
Щоб отримати всю інформацію, яку вам потрібно знати про Мейвен, прочитайте деякі книги на своєму веб-сайті . Однак це трохи надмірності для того, що ви намагаєтесь досягти.
Для початку викладіть веб-додаток за стандартною структурою Maven для веб-додатків наступним чином. (Для цього вам не потрібен архетип Maven; це лише купа стандартних папок. Ви можете зробити це за 2 хвилини).
src/main/java
- містить Ваш виробничий код Java
src/main/resources
- містить ресурси виробничого класу (наприклад, Весняні контексти)
src/main/webapp
- (містить WEB-INF / web.xml, але не папку lib)
src/test/java
- містить ваш тестовий код Java
src/test/resources
- містить ваші тестові ресурси (наприклад, XML-канали для тестування веб-служб тощо)
Основні плагіни
Наступним кроком є вибір плагінів. Звичайні підозрювані - це, очевидно, ті, що підтримують чистоту, збирання та ресурси (приходять як частина Maven, але ви можете їх налаштувати). Тоді ви будете мати тестер надійної одиниці та плагін WAR. Цього достатньо, щоб створити дуже базовий веб-додаток.
Більш просунуті плагіни
Наступним кроком є введення плагінів Findbugs та PMD, які дозволять ретельно переглядати ваш код та повідомляти про різні потенційні проблеми. Напевно, ви хочете мати JXR для перехресного посилання вихідного коду, тег для відстеження TODO та тегів REFACTOR тощо. Понад усе...
... Використовуйте плагін Jetty для веб-додатків
Використовуйте плагін Jetty для запуску файлу WAR у вашому IDE для легкої налагодження. Це швидко і мало, і робота швидко виконується. Якщо Jetty є частиною вашої збірки Maven, ваш проект може бути протестований на будь-якій машині, не потребуючи IDE з налаштованою складною панеллю серверів. Це також дозволяє оголосити залежності від інших файлів WAR, що, в свою чергу, означає, що ви можете створити повне робоче середовище, що складається з декількох веб-додатків, всією командою "mvn clean jetty: run". Це працює в будь-якому місці, і ви навіть можете надати тестову конфігурацію JNDI, щоб ваші джерела даних, введені Spring, були налаштовані зовні. Якщо ви поєднуєте цей підхід Jetty зі стандартною демонстраційною HTML-сторінкою (src/test/resources/demo.html
) Ви заощадите уроки годин розробника, намагаючись отримати робоче місцеве середовище. Одна команда, і ви закінчили. Простий.
Налаштування IDE
З Maven це легко, оскільки всі великі хлопці підтримують це: Eclipse, Netbeans і, звичайно, мій особистий улюблений Intellij. Просто вкажіть свій IDE на pom.xml, і він подбає про зменшення всіх перелічених залежностей для вас. Більше не маніпулювати з WEB-INF/lib
. У Eclipse типово використовуєш File | Імпорт ... | Проект Maven | пом.хмл.
Інтеграція з Хадсоном
Спершу встановіть Хадсон (це просто веб-версія), а потім націліть свою систему контролю версій, щоб вона перевірила відповідну версію. Ваш останній крок - налаштувати його так, щоб він використовував Maven для збирання. Очевидно, Maven доведеться встановити на вашій машині збирання (якщо припустити, що це відрізняється від вашої розробки).
Хадсон робить лише знімок
Дозвольте Хадсону виконувати зйомки знімків і залишати версії версій ручним процесом. Використання цього підходу означатиме, що розробники можуть ділитися кодом під час перегляду знімків (наприклад, 1.0.0-SNAPSHOT), і лише за умови передачі збірки він буде переданий у сховище команди. Як правило, Хадсон виконує "mvn clean розвернення", хоча включення мети "site" також може бути частиною вашого процесу, оскільки він створить невеликий веб-сайт проекту для кожної збірки. Команда розробників автоматично оновлює збір знімків до свого проекту через процес управління залежністю Maven.
Hudson пропонує безліч плагінів, які можуть підтримувати всілякі показники. Мій особистий фаворит - відстежувати кількість пройдених тестів за проект протягом часу. Приємно показати керівництву, що кількість тестів і покриття ваших одиниць постійно зростає.
Загальні вказівки щодо налаштування
Розбийте свої сховища принаймні на таку структуру:
- команда-реліз - Усі ваші випущені виробничі артефакти йдуть сюди
- team-snapshot - Усі ваші артефакти розвитку знімків переходять сюди
- стороннє випуск - сюди йдуть усі ваші підтримувані сторонні бібліотеки (наприклад, Spring, Hibernate тощо)
Облікові записи розробників не повинні мати можливість записуватись у командні сховища, ані знімок, ані реліз. Це дозволить розробнику обійти Хадсона, якщо вони поспішають і швидко стануть нормою.
Переконайтеся, що ви завжди завантажуєте джерело, підписи javadocs і SHA для всіх своїх третіх сторін. Jarvana - чудовий дослідник сховищ для всіх тих, хто важко знайти заняття.
Подумайте про встановлення диспетчера сховищ, таких як Nexus або Artifactory, щоб забезпечити кращий контроль над вашим постійно зростаючим сховищем.