何を達成したいですか?
現在、 Drupalを使用するPHPプロジェクトに取り組んでいます。
プロジェクト全体のワンステップビルドを作成する方法を必死に学びたいです。できれば、非常に強力に見える(私にとって)新しいものを使用することによって:Maven
基本的に、次のプロセスを自動化したいです。
- 公式CVSリポジトリからDrupalをチェックアウトします。
- それぞれのCVSリポジトリから公式のサードパーティモジュールをチェックアウトします。
- Mercurialリポジトリからカスタムモジュールをチェックアウトします。
- すべてのモジュールをDrupal内の適切なディレクトリにコピー/移動します。
- カスタムテーマをチェックアウトしてインストールします。
- カスタムdrupalインストールプロファイルを追加します。
- 新しいMySQLデータベーススキーマを作成します。
- 可能であれば、drupaldb接続のセットアップを自動化します。
将来的には、このビルドをHudson(またはその他の)継続的インテグレーションサーバーで実行したいと思います。
なぜMavenなのか?(なぜAntやPhingではないのですか?)
何か新しいことを学びたいという願望(私は以前にAntを使用したことがあります)以外に、Mavenの依存関係管理はdrupalモジュールでうまく機能するかもしれないと思います。
MavenはもともとPHPプロジェクトを対象としていませんでしたが、これがMavenを使用する十分な理由だと思いますか?Antが元々PHPにも使用されていなかったことは知っていますが、AntとPHPを一緒に使用している人の例ははるかに多くあります。
ところで、Mavenをすぐに動作させることができない場合は、Antに切り替えると思います。Antの手続き型は、私にとって理解しやすいものです。
これまでに何がありますか?
DrupalソースをチェックアウトするためにSCMプラグインを使用するpom.xmlファイルがあります。私が走るとき:
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ディレクトリに移動するためにゴールを使用する必要がありますか?- 現在、すべてのカスタムモジュールは1つのMercurialリポジトリにあります。pom.xmlを作成し、各モジュールを個別にチェックアウトすることは可能ですか?
- 一般的なアドバイスをいただければ幸いです。
御時間ありがとうございます!