我想达到什么目标?
我们目前正在开发一个使用Drupal的 PHP 项目。
我非常想学习如何为整个项目创建一步构建。最好使用看起来非常强大的新东西(对我来说):Maven
基本上我想自动化以下过程:
- 从官方CVS 存储库签出 Drupal 。
- 从各自的 CVS 存储库中签出官方的 3rd 方模块。
- 从我们的 mercurial 存储库中签出我们的自定义模块。
- 将所有模块复制/移动到 Drupal 中的适当目录。
- 结帐并安装我们的自定义主题。
- 添加自定义 drupal 安装配置文件。
- 创建一个新的 MySQL 数据库模式。
- 如果可能,自动化 drupal 数据库连接设置。
将来我想在 Hudson(或任何其他)继续集成服务器上运行此构建。
为什么是马文?(为什么不是 Ant 或Phing?)
除了想要学习新东西(我以前用过 Ant)之外,我认为 Maven 的依赖管理可能对 drupal 模块很有效。
您认为这是使用 Maven 的足够理由吗,即使 Maven 最初并非用于 PHP 项目?我知道 Ant 最初也不是用于 PHP 的,但是有更多的人同时使用 Ant 和 PHP 的例子。
顺便说一句,如果我不能让 Maven 尽快工作,我想我会改用 Ant。Ant的程序风格对我来说更容易理解。
到目前为止我有什么?
我有一个使用 SCM 插件的 pom.xml 文件来检查 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 并单独签出每个模块?
- 任何一般性建议将不胜感激。
谢谢你的时间!