我对salesforce类型的开发完全陌生,所以请耐心等待。 正如标题所说,我试图弄清楚如何取消部署/清理目标环境。 使用ant脚本,我能够从开发环境中提取所有内容并将其成功部署到测试环境中。但是,我还希望能够在执行任何其他部署之前清理此测试环境。根据文档,我创建了一个空的 package.xml 和一个 desctructiveChanges.xml 文件。但是,与检索和部署过程不同,我无法使用通配符来实现此功能。如果我在xml文件中明确引用它但使用*只是失败,我能够取消部署对象,页面,顶点代码。是否可以这样做或者我应该探索替代方案?请记住,部署是解包后的代码。
用于部署的package.xml示例(成功)
<type>
<members>*</members>
<names>CustomObject</names>
</type>
来自desctructiveChanges.xml的样本(失败)
<type>
<members>*</members>
<names>CustomObject</names>
</type>
答案 0 :(得分:1)
destructiveChanges.xml 需要严格的组件列表,这些组件应从目标环境中删除。因此,您需要按以下方式描述应删除的所有组件:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>ApexClass1</members>
<members>ApexClass2</members>
<members>ApexClass3</members>
<name>ApexClass</name>
</types>
<types>
<members>Custom_Object1__c</members>
<members>Custom_Object2__c</members>
<name>ApexPage</name>
</types>
<types>
<members>VisualForcePage1</members>
<members>VisualForcePage2</members>
<name>CustomObject</name>
</types>
<types>
<members>Custom_Object3__c.Field1__c</members>
<members>Custom_Object3__c.Field2__c</members>
<members>Custom_Object4__c.Field1__c</members>
<name>CustomField</name>
</types>
<types>
<members>CustomLabelName1</members>
<name>CustomLabel</name>
</types>
<types>
<members>Custom_Object3__c.Validation_Rule_1_Name</members>
<name>ValidationRule</name>
</types>
<version>29.0</version>
</Package>