Чего я хочу достичь?
В настоящее время мы работаем над проектом PHP, который использует Drupal .
Я отчаянно хочу узнать, как создать Одношаговую сборку для всего проекта.
Желательно использовать что-то новое (для меня), которое кажется очень мощным: Maven
В основном я хочу автоматизировать следующий процесс:
- Оформить заказ Drupal из официального CVS-репозитория .
- Оформление официальных сторонних модулей из соответствующих репозиториев CVS.
- Оформление наших пользовательских модулей из нашего ртутного хранилища.
- Скопируйте / переместите все модули в соответствующий каталог в Drupal.
- Оформить заказ и установить нашу пользовательскую тему.
- Добавление пользовательского профиля установки drupal.
- Создание новой схемы базы данных MySQL.
- Если возможно, автоматизируйте настройку соединения с drupal db.
В будущем я хотел бы запустить эту сборку на сервере дальнейшей интеграции Hudson (или на любом другом).
Почему Мейвен? (почему не муравей или Phing ?)
Кроме желания узнать что-то новое (я раньше использовал Ant), я думаю, что управление зависимостями в Maven может хорошо работать для модулей drupal.
Считаете ли вы, что это достаточная причина для использования Maven, хотя Maven изначально не предназначался для проектов PHP? Я знаю, что Ant тоже изначально не использовался для PHP, но есть гораздо больше примеров людей, использующих Ant и PHP вместе.
Кстати, я думаю, что переключусь на Муравья, если не смогу заставить Мейвена работать в ближайшее время. Мне легче понять процедурный стиль Ant.
Что у меня до сих пор?
У меня есть файл pom.xml, который использует плагин SCM для извлечения исходного кода drupal.
Когда я бегу:
mvn scm:checkout
источник извлечен в новый каталог:
target/checkout
Когда я пытаюсь:
mvn scm:bootstrap
жалуется на то, что цель установки не определена.
Вот pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>drupal</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.1</version>
<configuration>
<username>anonymous</username>
<password>anonymous</password>
</configuration>
</plugin>
</plugins>
</build>
<scm>
<connection>scm:cvs:pserver:cvs.drupal.org:/cvs/drupal:drupal</connection>
<developerConnection>scm:cvs:pserver:cvs.drupal.org:/cvs/drupal:drupal</developerConnection>
<tag>DRUPAL-6-12</tag>
<url>http://cvs.drupal.org/viewvc.py/drupal/drupal/?pathrev=DRUPAL-6</url>
</scm>
</project>
Наконец, какие у меня вопросы?
- Является ли Maven неправильным инструментом для этого?
Если нет,
- Как бы вы это сделали?
- Это
scm:bootstrap
цель, которую я должен использовать?
- Как Maven перемещает каталоги в файловой системе?
- Следует ли использовать цель
install
для перемещения модулей в каталог drupal?
- В настоящее время все наши пользовательские модули находятся в одном хранилище Mercurial. Можно ли создать pom.xml и оформить каждый модуль отдельно?
- Буду признателен за любой общий совет.
Спасибо за ваше время!