Force.com 移行ツールの設定
Force.com 移行ツールの一般的な設定タスクのヒントを次に示します。
Git 用に Force.com 移行ツールを設定する場合のヒント
Force.com 移行ツールを Git などのソース制御システムに統合するには、コマンドラインで実行する場合やローカルファイルシステムを使用して保存する場合とは異なるように移行ツールを設定する必要があります。Force.com 移行ツールを Git に統合すると、このツールで Git の出力を保存したり、リポジトリから Git の入力を取得したりすることができます。Git 用にこのツールを設定する場合のベストプラクティスを次に示します。
- Git で、package.xml を格納するプロジェクトフォルダ内にソースフォルダ (src) を作成します。
- ツールのサンプルディレクトリから build.properties と build.xml を Git プロジェクトソース (src) フォルダにコピーします。
- メタデータの取得またはリリースにパッケージ名を使用しないでください。代わりに、パッケージ化されていない取得やリリースを使用します。
リモート Git リポジトリを使用する場合のヒント
リモート Git リポジトリの場合は、Force.com 移行ツールを Git リポジトリに統合すれば、Git ブランチのファイルにアクセスできます。 次のスニペットを build.xml に追加します。
1<macrodef name="git">
2 <attribute name="dir" default="" />
3 <attribute name="branch" default="master" />
4 <sequential>
5 <exec executable="git" dir="@{dir}">
6 <arg value="pull" />
7 <arg value="origin" />
8 <arg value="@{branch}" />
9 </exec>
10 </sequential>
11</macrodef>
12
13<target name="checkoutFromGit">
14 <echo>Issuing git pull from directory: ${git.dir}</echo>
15 <echo>Pulling from branch: ${git.branch}</echo>
16 <git dir="${git.dir}" branch="${git.branch}" />
17</target>Force.com 移行ツールを設定してテストを実行する場合のヒント
ステージング Sandbox にリリースする場合は、Apex テストを実行することをお勧めします。 デフォルトではテストは必須ではなく、Sandbox で実行されません。ただし、build.xml ファイルのリリースターゲット (<sf:deploy> タグ) に testLevel="RunLocalTests" パラメータを追加すれば、Force.com 移行ツールでのテスト実行を有効にできます。このリリースオプションではローカルテストが実行され、インストール済みの管理パッケージから発生したテストは除外されます。このテスト実行は、必要に応じて、本番環境で実行するテストに対応します。次の例は、testLevel="RunLocalTests" 属性 (太字) を使用してリリース対象でテスト実行を有効にする方法を示しています。
1<sf:deploy username="${sf.username}" password="${sf.password}" testLevel="RunLocalTests" … />すべてのメタデータの package.xml を生成する場合のヒント
Force.com 移行ツールを使用してすべてのメタデータコンポーネントを移行するには、組織のすべてのメタデータを参照する package.xml マニフェストファイルを使用する必要があります。このファイルを手動で作成する手順を次に示します。
- Force.com 移行ツールを使用して、コマンド ant describeMetadata を実行します。
このコマンドの出力に、すべてのメタデータコンポーネントと子オブジェクトがリストされます。Force.com 移行ツールでメタデータを取得またはリリースする場合、親オブジェクトに子オブジェクトが含まれるため、リストに必要なのは親オブジェクト (XMLName 項目) のみです。
- 返されたリストから [InFolder: true] 属性のあるデータ型 (Dashboard、Document、EmailTemplate、Report) を除外して絞り込みます。
- 絞り込まれたリストから、各 XMLName 項目の値を package.xml の <types> にネストされた <name> タグにコピーして、<members> タグを * 値に関連付けます。たとえば CustomLabels の場合、タグのペアは次のようになります。
1<types> 2 <members>*</members> 3 <name>CustomLabels</name> 4</types>次の例は、package.xml の一部分を示しています。package.xml の内容は、組織で使用可能なメタデータによって異なります。1<?xml version="1.0" encoding="UTF-8"?> 2<Package xmlns="http://soap.sforce.com/2006/04/metadata"> 3 <fullName>SampleManifest</fullName> 4 <types> 5 <members>*</members> 6 <name>AnalyticSnapshot</name> 7 </types> 8 <types> 9 <members>*</members> 10 <name>AuthProvider</name> 11 </types> 12 <types> 13 <members>*</members> 14 <name>CustomLabels</name> 15 </types> 16 <types> 17 <members>*</members> 18 <name>CustomObject</name> 19 </types> 20 . . . 21 <version>31.0</version> 22</Package>