使用ANT部署托管Salesforce包

使用ANT部署托管Salesforce包,ant,salesforce,release-management,Ant,Salesforce,Release Management,我需要将安装在源组织上的托管包部署到目标组织。我相信一定有办法使用ANT部署相同的组件,就像我们为所有其他Salesforce相关组件所做的那样 有人能帮我指出实现这一点的过程和ANT语法吗 我首先要在本地检索包,然后将包部署到目标组织。您也可以对托管包使用ANT迁移。只需在ANT命令中使用“retrieveNamedPackage”目标来提取托管包 在这个“retrieveNamedPackage”目标中,您应该在packageNames属性中指定正确的托管包名称 <target nam

我需要将安装在源组织上的托管包部署到目标组织。我相信一定有办法使用ANT部署相同的组件,就像我们为所有其他Salesforce相关组件所做的那样

有人能帮我指出实现这一点的过程和ANT语法吗


我首先要在本地检索包,然后将包部署到目标组织。

您也可以对托管包使用ANT迁移。只需在ANT命令中使用“retrieveNamedPackage”目标来提取托管包

在这个“retrieveNamedPackage”目标中,您应该在packageNames属性中指定正确的托管包名称

<target name="retrieveNamedPackage">
<sf:retrieve 
  username="${sf.username}" 
  password="${sf.password}"
  sessionId="${sf.sessionId}" 
  serverurl="${sf.serverurl}" 
  retrieveTarget="projectFolder" 
  packageNames="mySourcePackage"/>
</target>

检索的参考:

检索后,内容现在将位于“projectFolder”中(如retrieveTarget属性中所述)

<target name="retrieveNamedPackage">
<sf:retrieve 
  username="${sf.username}" 
  password="${sf.password}"
  sessionId="${sf.sessionId}" 
  serverurl="${sf.serverurl}" 
  retrieveTarget="projectFolder" 
  packageNames="mySourcePackage"/>
</target>
要将“projectFolder”(即托管包组件)中的内容部署到目标组织,请使用以下目标

<target name="deployPackaged">
<sf:deploy 
  username="${sf.username}" 
  password="${sf.password}" 
  sessionId="${sf.sessionId}"
  serverurl="${sf.serverurl}" 
  deployroot="projectFolder"/>
</target>

部署参考:

您可能会遇到的一些错误: 1.指定的包命名空间:命名空间与服务器的命名空间不匹配

原因:之所以会发生这种情况,是因为package.xml包含的标记的命名空间值与您的组织命名空间不匹配

修复1:从package.xml中删除标记,然后尝试使用ANT部署

修复2:设置组织的名称空间(),然后在package.xml中指定此名称空间,然后尝试使用ANT部署


免责声明:如果您正在尝试修复2,请在设置名称空间之前在您的组织中进行影响分析。我认为您无法在设置名称空间之后回滚名称空间。在您的SF developer组织中尝试此操作,然后在您的客户组织中尝试此操作。

您也可以对托管包使用ANT迁移。只需使用ANT命令中的“retrieveNamedPackage”目标来提取托管包

在这个“retrieveNamedPackage”目标中,您应该在packageNames属性中指定正确的托管包名称

<target name="retrieveNamedPackage">
<sf:retrieve 
  username="${sf.username}" 
  password="${sf.password}"
  sessionId="${sf.sessionId}" 
  serverurl="${sf.serverurl}" 
  retrieveTarget="projectFolder" 
  packageNames="mySourcePackage"/>
</target>

检索的参考:

检索后,内容现在将位于“projectFolder”中(如retrieveTarget属性中所述)

<target name="retrieveNamedPackage">
<sf:retrieve 
  username="${sf.username}" 
  password="${sf.password}"
  sessionId="${sf.sessionId}" 
  serverurl="${sf.serverurl}" 
  retrieveTarget="projectFolder" 
  packageNames="mySourcePackage"/>
</target>
要将“projectFolder”(即托管包组件)中的内容部署到目标组织,请使用以下目标

<target name="deployPackaged">
<sf:deploy 
  username="${sf.username}" 
  password="${sf.password}" 
  sessionId="${sf.sessionId}"
  serverurl="${sf.serverurl}" 
  deployroot="projectFolder"/>
</target>

部署参考:

您可能会遇到的一些错误: 1.指定的包命名空间:命名空间与服务器的命名空间不匹配

原因:之所以会发生这种情况,是因为package.xml包含的标记的命名空间值与您的组织命名空间不匹配

修复1:从package.xml中删除标记,然后尝试使用ANT部署

修复2:设置组织的名称空间(),然后在package.xml中指定此名称空间,然后尝试使用ANT部署


免责声明:如果您正在尝试修复2,请在设置名称空间之前在您的组织中进行影响分析。我认为您无法在设置名称空间之后回滚名称空间。请在您的SF开发者组织中尝试此操作,然后在您的客户组织中尝试此操作。

感谢Abhishek。我使用了此过程,但是得到了以下错误和deployment因错误而失败。指定的包命名空间:abc_12与服务器的命名空间不匹配:xyzHi Ashish,我确实在我的计算机中尝试了此操作,并遇到了与您指出的完全相同的问题。我可以通过在我的开发人员组织中设置命名空间来解决此问题。我已更新了我的答案,其中包含错误、原因和修复步骤。希望这有帮助。感谢Abhishek。我使用了此过程,但是出现以下错误,部署失败,出现错误。指定的包命名空间:abc_12与服务器的命名空间不匹配:xyzHi Ashish,我确实在我的计算机中尝试了此操作,并且遇到了与您指出的完全相同的问题。我能够通过设置解决它我已经用错误、原因和修复步骤更新了我的答案。希望这能有所帮助。