Ant в Maven. Как и зачем.
Пришло время рассказать как из ант сборки проекта сделать мавен. Мотивацией сего действия было задание прилепить к мавеновскому проекту jforum с автоматической авторизацией наших юзеров. Конечно это можно сделать методом правки кода в блокноте (кто же не дает), бесконечным билдиньем и созерцанием собственных багов. Что меня как то не привлекало. В результате долгих гуглений, попыток настроить под себя так и этак имеющийся антовский исходник, при отсутствии желания вникать в особенности и методы работы с антом , наткнулась на эту замечательную статью, что было счастьем и заслуженно наградой за долгие мытарства.
А теперь краткий вольный перевод полученной инфы. (заметочка на память)
Общий краткий план действий,
что нужно делать чтобы из ант проекта сделать мавен :
1. добавить jar-ник (war-ник) в репозиторий m2
2. сгенерировать пустой мавен проект
3. добавить в этот пустой проект в библиотечки ваш jar-ник из мавеновского m2
4. для проверки - билдим , должен получиться корректный jar-ник (war-ник)
5. в этот пустой проект можем добавлять произвольные файлы из исходников ант проекта (с сохранением путей естественно) и спокойно их править как душа пожелает. В результате в сбилдинном проекте будут "наши" файлы а не исходные.
How to или подробные формальности.
(На примере jforum честно скопипащеной с вышеупомянутой статьи)
1. Запускаем в консоли, из папки где непосредственно лежит war-ник (или пишем к нему путь).
Удаляем из него лишнее (можно и не с консоли)
Версионный контроль
4. Можно билдить! С консоли
5. Собственные изменения.
Для примера надо изменить страничку в шаблонах. Можно с консоли или средствами IDE.
Сбилдим джарник ант проекта, изменив и добавив если нет дефаулт задачу в buil.xml исходников такого вида :
Получится jar-ник в папке /build. Его аналогичным образом помещаем в локальный репозиторий мавена.
P.S. В результате дальнейшей деятельности и объективной оценки плюсов и минусов различных решений для форума , было отдано предпочтение в пользу phpbb.
А теперь краткий вольный перевод полученной инфы. (заметочка на память)
Общий краткий план действий,
что нужно делать чтобы из ант проекта сделать мавен :
1. добавить jar-ник (war-ник) в репозиторий m2
2. сгенерировать пустой мавен проект
3. добавить в этот пустой проект в библиотечки ваш jar-ник из мавеновского m2
4. для проверки - билдим , должен получиться корректный jar-ник (war-ник)
5. в этот пустой проект можем добавлять произвольные файлы из исходников ант проекта (с сохранением путей естественно) и спокойно их править как душа пожелает. В результате в сбилдинном проекте будут "наши" файлы а не исходные.
How to или подробные формальности.
(На примере jforum честно скопипащеной с вышеупомянутой статьи)
1. Запускаем в консоли, из папки где непосредственно лежит war-ник (или пишем к нему путь).
$ mvn install:install-file -DartifactId=jforum -Dversion=2.1.8 -Dfile=jforum-2.1.8.war -DgroupId=net.jforum -DgeneratePom=true -Dpackaging=war2. Пустой мавен проект
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.company.jforum -DartifactId=jforum -Dversion=2.1.8
Удаляем из него лишнее (можно и не с консоли)
$ rm src/main/webapp/WEB-INF/web.xml $ rm src/main/webapp/index.jsp
Версионный контроль
$ git init $ echo "target" $ git add pom.xml src $ git commit -m "Initial code import"3. Добавить зависимости в pom.xml. И удалить лишний junit.
net.jforum jforum 2.1.8 war
4. Можно билдить! С консоли
mvn package
, или средствами IDE.5. Собственные изменения.
Для примера надо изменить страничку в шаблонах. Можно с консоли или средствами IDE.
$ mkdir -p src/main/webapp/templates $ cp target/war/work/net.jforum/jforum/templates/default src/main/webapp/templates/defaultЕсли необходимо изменить ява код то воспользуемся тем же приемом для jar-ника.
Сбилдим джарник ант проекта, изменив и добавив если нет дефаулт задачу в buil.xml исходников такого вида :
Потом с консоли :
$ ant clean jar
Получится jar-ник в папке /build. Его аналогичным образом помещаем в локальный репозиторий мавена.
$ mvn install:install-file -Dpackaging=jar -DartifactId=jforum -Dversion=2.1.8 -Dfile=jforum-2.1.8.jar -DgroupId=net.jforum -DgeneratePom=true -Dpackaging=jarТак же добавляем зависимость в pom.xml и можно править.
P.S. В результате дальнейшей деятельности и объективной оценки плюсов и минусов различных решений для форума , было отдано предпочтение в пользу phpbb.