dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce] Force.com Migration Toolでファイルを削除

ちょいメモ。

方法

以下のような構成で build.properties と 3 つの XML ファイルを用意する。

├── build.properties
├── build.xml
└── [任意のディレクトリ名]
      ├── destructiveChanges.xml
      └── package.xml

package.xml

API のバージョンだけ書く。

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <version>32.0</version>
</Package>

destructiveChanges.xml

デプロイする時の package.xml と同じように、削除したいファイルを記述する。
注) * (ワイルドカード) は使えない

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>HogeClass</members>
        <members>FugaClass</members>
        <name>ApexClass</name>
    </types>
    <types>
        <members>MyCustomObject__c</members>
        <name>CustomObject</name>
    </types>
    <version>32.0</version>
</Package>

build.xml

package.xml と destructiveChanges.xml が存在するディレクトリを deployRoot に指定。
target name は何でもいい。

<target name="undeployCode">
  <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="[ディレクトリ名]"/>
</target>

ant コマンドの実行

$ ant undeployCode

リファレンス

Salesforce Developers

https://sites.google.com/site/odekakeshimasyo/salesforcemigrationtool