包XML缺少@AzurePipeline蚂蚁

时间:2019-11-29 13:40:14

标签: xml ant azure-devops salesforce azure-pipelines

所以我对手动运行ant和迁移Salesforce元数据很有经验。

现在,我们正在尝试使用Azure Devops创建CLI解决方案。到目前为止,我们已经有了使用ant的存储库和管道。我正在观看视频:https://www.youtube.com/watch?v=KPGaVO72I1s。我认为不需要提供package.xml文件,因为这是CLI的原因:自动构建,为什么要手动创建该软件包?链接的视频中也没有package.xml。

我运行它时遇到两个错误:

** ll组件故障: 1. package.xml-错误:未找到package.xml ***********部署失败*************

[antlib:com.salesforce]无法从资源com / salesforce / antlib.xml加载定义。找不到。

我现在非常困惑-为什么它仍在寻找软件包xml? 在这里:

<project name="deployTest" default="deployCode" basedir="." xmlns:sf="antlib:com.salesforce">
    <property file="build.properties"/>
    <property environment="env"/>
    <property name="ant.jar" value="ant-salesforce.jar" />
    <property name="sf.password" value="${salesforce.password}" />
    <property name="sf.username" value="${salesforce.username}" />
    <property name="sf.serverurl" value="${salesforce.serverurl}" />

    <target name="retrieveCode">
       <sf:retrieve username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="src" unpackaged="package/package.xml"/>
    </target>

    enter code here

    <path id="classpath">
      <fileset dir="${lib.dir}" includes="**/*jar"/>
    </path>

    <taskdef resource="com/salesforce/antlib.xml"
        uri="antlib:com.salesforce" >
        <classpath>
          <pathelement location ="${ant.jar}" />
        </classpath>
    </taskdef>
    <target name="deployCode">
        <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" deployroot="." checkonly="true"></sf:deploy>

    </target>
</project>

任何想法都非常受欢迎!

劳伦斯

1 个答案:

答案 0 :(得分:0)

如果要通过Metadata API进行部署,则需要一个package.xml清单-句号。这与您的CI系统(Azure DevOps)本身无关。它是Salesforce平台API所必需的,因此是Metadata API客户端的那些工具(包括Ant)也需要。

唯一不需要package.xml的情况是,如果您要推送Salesforce DX源代码(例如,通过sfdx force:source:push到草稿组织),或者使用可从您的源目录自动生成或刷新package.xml的构建工具。 CumulusCI(Salesforce.org的免费开放源代码构建工具)可以为您自动更新package.xml。 (免责声明:我在构建CumulusCI的团队中)。