如何排除 urlrewriterules.xml 和 domainsplittings.xml 被复制到 serverDeploy 任务的配置目录

How to exclude urlrewriterules.xml and domainsplittings.xml from being copied to config dir on serverDeploy task

我们正在尝试将我们的自定义 domainsplittings.xml 和 urlrewriterules.xml 文件与我们的 url 重写规则一起放入 share/system/config/cluster 文件夹,但每次我们 运行 deployServer gradle 任务,这些文件是从本地 gradle 存储库 bc_urlrewrite.zip 复制的。

我们已经尝试使用以下代码在我们的一个墨盒中定义自定义 deployment/deploy.gradle 文件:

project(':bc_urlrewrite') {
  afterEvaluate {
      deployment.files.share {
          exclude { 
              new File(destinationDir, it.path) == new File(target.shareDirectory, 'system/config/cluster/domainsplittings.xml')
              new File(destinationDir, it.path) == new File(target.shareDirectory, 'system/config/cluster/urlrewriterules.xml')                       
          }
      }                                    
  }

}

如此处所述:https://support.intershop.com/kb/index.php/Display/282B92#Cookbook-DeploymentToolsICM7.9-Recipe:ReplaceaFileDeployedbyAnotherComponent 但这不起作用。文件仍然从 bc_urlrewrite.zip 的 deployServer 任务中复制。

我们是不是做错了什么?我们不需要这些文件,因为它们包含 url 演示 intronics 商店的重写规则。

感谢您的帮助!

是的,文档不是很清楚,过去您可以简单地重载设置。可以试试下面的配置吗

apply plugin: com.intershop.deploy.cartridge.CartridgeDeploymentPlugin
   if (target.includeShare && findProject(':bc_urlrewrite')) {
       project(':bc_urlrewrite') {
           def excludeFiles = {
               deployment.files.share {
                   exclude 'system/config/cluster/urlrewriterules.xml'
                   exclude 'system/config/cluster/domainsplittings.xml'
               }
           }
           if (project.state.executed) {
               excludeFiles()
           } else {
               afterEvaluate(excludeFiles)
           }
       }
   }