Hei*_*ter 7 build-automation maven-2 drupal build drupal-distributions
我们目前正在开发一个使用Drupal的PHP项目.
我非常想学习如何为整个项目创建一步构建.最好使用一些看似非常强大的新东西(对我来说):Maven
基本上我想自动化以下过程:
在将来,我想在Hudson(或任何其他)继续集成服务器上运行此构建.
除了学习新东西的愿望(我以前使用过Ant)之外,我认为Maven的依赖管理可能对drupal模块有效.
您是否认为这是使用Maven的充分理由,即使Maven最初并非用于PHP项目?我知道Ant最初也不是用于PHP的,但是有更多的人一起使用Ant和PHP的例子.
顺便说一下,如果我不能让Maven尽快工作,我想我会切换到Ant.Ant的程序风格让我更容易理解.
我有一个使用SCM插件的pom.xml文件来检查drupal源代码.当我跑:
mvn scm:checkout
Run Code Online (Sandbox Code Playgroud)
将源签出到新目录中:
target/checkout
Run Code Online (Sandbox Code Playgroud)
当我尝试:
mvn scm:bootstrap
Run Code Online (Sandbox Code Playgroud)
它抱怨没有定义安装目标.
这是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>
Run Code Online (Sandbox Code Playgroud)
如果不,
scm:bootstrap我应该使用的目标吗?install目标将模块移动到drupal目录中?谢谢你的时间!
小智 5
我98%确定你真正需要的是Drush Make,它可以递归地构建Drupal项目,只要它们提供列出其依赖项的自己的.make文件.它可以从多个SCM,Web,补丁文件下载,您可以控制它们下载的位置.它还支持外部库,例如wysiwyg,PHP文件或JS库.
请参阅Open Atrium make文件以获取其可以执行的操作的示例.
肯定你没有使用 Maven,这里有一些想法:
由于前面的几点,Maven 没有命令将文件移动到特定目录(不是本机目录),并且您不应该调用安装阶段将文件复制到本地存储库之外的任何其他位置。你所做的就像把一台洗衣机改造成搅拌机。
在阅读了您想要对项目执行的操作后,我建议您创建一个脚本(shell 脚本或批处理脚本,具体取决于您的操作系统)来完成这项工作。SVN 和 CVS 具有可以从构建脚本内部调用的命令行工具。我想您选择 Maven 的原因之一是,Hudson 和许多其他持续集成软件与它很好地集成,但您也可以将它们与脚本一起使用。
如果您习惯使用 Ant,并且认为使用它会缩短应用程序的构建时间,我认为还不错;)(除 Java 项目外,我没有将 Ant 用于其他目的)