在 AWS 中的 Jenkins 盒子上部署到 Apigee - 如何修复错误 'The string \"--\" is not permitted within comments.'?

Deploying to Apigee on a Jenkins box in AWS - how do I fix the error, 'The string \"--\" is not permitted within comments.'?

我可以在我的本地机器上部署到 Apigee,但是当我尝试从位于 AWS 中的 Jenkins 盒子进行部署时,我收到一个奇怪的错误:'The string \"--\" is not permitted within comments.'

这是完整的错误:

XMLFileListUtil:140
=============Searching for XML files in the following directory ================
/var/lib/jenkins/jobs/company-apigee-proxy-deploy-nonprod/workspace/deploy/company-apigee-ourproxy/target/apiproxy/proxies
00:14:03,571 DEBUG XMLFileListUtil:144 - =============Nuber of files found is================
1
00:14:03,771  INFO FileReader:71 - ============= Reading the config file located at ================
/var/lib/jenkins/jobs/company-apigee-proxy-deploy-nonprod/workspace/deploy/company-apigee-ourproxy/config.json
00:14:03,817 ERROR ConfigureMojo:124 - The string \"--\" is not permitted within comments.

谷歌搜索此错误消息只显示一群人在 XML 评论中有“--”,而我没有。 (我已经详尽地查看了可能在 IntelliJ 中使用全文 "find in path" 搜索的所有文件。某些文件中有一些正常的 XML 注释,但没有“--”的情况一条评论。)

我用来启动触发 Apigee 部署的脚本的 Ansible 代码是:

- name: execute deploy.sh script
  command: bash -lc "bash deploy.sh"
  register: deploy_script_output
  args:
    chdir: "{{ deploy_subdir }}"

我也尝试过几种变体,比如使用 "shell:" 和 "script:",但似乎没什么区别。

它抱怨的 .XML 文件是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TargetEndpoint name="ourproxy">
    <Description/>
    <FaultRules>
        <FaultRule name="handleTargetErrors">
            #common_code#
        </FaultRule>
    </FaultRules>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <Flows/>
    <HTTPTargetConnection>
        <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>FROM CONFIG.JSON</KeyStore>
            <KeyAlias>FROM CONFIG.JSON</KeyAlias>
        </SSLInfo>
        <URL>FROM CONFIG.JSON</URL>
    </HTTPTargetConnection>
</TargetEndpoint>

“#common_code#”是一个 "fragment",它是通过 Apigee 插件从其他地方动态引入的,其中包含:

<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>
<Step>
    <Name>am_common_redacted</Name>
</Step>

我已经在我所有的 .XML 和 .JSON 文件中搜索了不应该出现的“--”,但我找不到它。

真正奇怪的是,当我 运行 在我的本地计算机上部署脚本时,它可以工作,这真的让我怀疑文件的内容是否有问题。这是一些奇怪的环境原因。

有人有想法吗?我对此完全感到困惑。

我删除了我所有文件中的所有 XML 评论,并克服了错误。这是没有意义的,因为所有评论都是格式正确的 XML,并且其中 none 在评论中有“--”。但是无所谓。我现在要处理下一个错误。 :-)