はじめに
Force.com Migration Tool (Force.com 移行ツール) は便利ですが、新しいファイルを作成してデプロイしたい時とかに以下のようなことで迷ってしまうことがあります。
- ディレクトリ名はなんだっけ?
- 拡張子はなんだっけ?
-
package.xml
にはどうやって書くんだっけ?
今回、Force.com移行ツールの機能だけで比較的簡単に確認する方法があったので紹介します。
インストール方法など
確認方法
移行ツールをダウンロードした時に入っているサンプルのbuild.xml
から、describeMetadata
というコマンドを使用します。
build.xml
<!-- Retrieve the information on all supported metadata type -->
<target name="describeMetadata">
<sf:describeMetadata username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}"/>
</target>
すると、次のような結果がターミナルに出力されます。
実行結果
describeMetadata:
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: InstalledPackage
[sf:describeMetadata] DirName: installedPackages
[sf:describeMetadata] Suffix: installedPackage
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: CustomLabels
[sf:describeMetadata] DirName: labels
[sf:describeMetadata] Suffix: labels
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: CustomLabel,************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: StaticResource
[sf:describeMetadata] DirName: staticresources
[sf:describeMetadata] Suffix: resource
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
...
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: Translations
[sf:describeMetadata] DirName: translations
[sf:describeMetadata] Suffix: translation
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: ApexClass
[sf:describeMetadata] DirName: classes
[sf:describeMetadata] Suffix: cls
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: ApexTrigger
[sf:describeMetadata] DirName: triggers
[sf:describeMetadata] Suffix: trigger
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
...
何やら色々表示されていますが、
-
XMLName
をpackage.xml
の<name>
に -
DirName
をディレクトリ名に -
Suffix
を拡張子名に
それぞれ指定すれば良いです。
よく使う項目まとめ
個人的によく使うメタデータを一覧にまとめときます。
項目 | ディレクトリ名 | 拡張子名 |
package.xml の<name>
|
---|---|---|---|
Apexクラス | classes | .cls | ApexClass |
Apexトリガ | triggers | .trigger | ApexTrigger |
Visualforceページ | pages | .page | ApexPage |
オブジェクト(標準・カスタム) | objects | .object | CustomObject |
カスタム表示ラベル | labels | .labels | CustomLabels |
カスタムタブ | tabs | .tab | CustomTab |
翻訳ファイル | translations | .translation | Translations |
補足
サンプルのbuild.xml
にはlistMetadata
というコマンドも用意されてます。
build.xml
<!-- Retrieve the information of all items of a particular metadata type -->
<target name="listMetadata">
<sf:listMetadata username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" metadataType="${sf.metadataType}"/>
</target>
特定のメタデータ(ApexClass
など)を指定して実行すると、現在その組織に保存されているデータが表示されます。
ただし、使う時はbuild.properties
に
build.properties
sf.metadataType = ApexClass
などと書いてから。