intershop - 使用自定义 domainplittings.xml 和 urlrewriterules.xml 运行 deployServer gradle 任务失败
问题描述
将我们的自定义 urlrewriterules.xml 和 domainplittings.xml 文件添加到“staticfiles\share\system\config\cluster\”文件夹中的墨盒后,我们无法再执行 deployServer gradle 任务。任务失败并出现以下错误:
* What went wrong:
Execution failed for task ':init_project:deployShareFiles'.
> Could not deploy files of task :init_project:deployShareFiles
> Task :init_project:deployShareFiles: Resource 'C:\Work\Project\intershop-ci\sources\projects\webshop\build\server\share\system\config\cluster\domainsplittings.xml' already defined for Task :bc_urlrewrite:deployShareFiles
> Task :init_project:deployShareFiles: Resource 'C:\Work\Project\intershop-ci\sources\projects\webshop\build\server\share\system\config\cluster\urlrewriterules.xml' already defined for Task :bc_urlrewrite:deployShareFiles
有谁知道为什么会这样,我们如何添加我们自己的 url 重写规则而不在每次 deployServer 之后编辑这些文件(从 bc_urlrewrite 盒复制系统规则)?
谢谢你的回答!
解决方案
请查看Cookbook - 部署工具 ICM 7.x / 23 配方:替换由另一个组件部署的文件:
替换文件是一项严厉的措施。考虑使用内容过滤器来更改现有文件,而不是提供您自己的版本,因为它可以简化未来的迁移。
看起来您不能使用配置框架的环境特定文件来重载$IS_SHARE/system/config/cluster/domainsplittings.xml
and$IS_SHARE/system/config/cluster/urlrewriterules.xml
文件(使用固定路径加载,而不是通过配置框架加载)。
该错误表明两个不同的组件 ( bc_urlrewrite
vs. init_project
) 正在尝试部署相同的目标文件。你有两个选择:
- 使用内容过滤器来更改现有文件,请参阅Cookbook - 部署工具 ICM 7.x / 15 配方:使用过滤器更改部署的文件内容
- 通过从原始组件的部署中排除文件来解决冲突
bc_urlrewrite
(提供自定义部署逻辑),请参阅:Cookbook - 部署工具 ICM 7.x / 14 配方:提供自定义部署配置和逻辑
推荐阅读
- javascript - Map() 菜单项。如何范围选择菜单项?
- c - 将金丝雀用于 bss 或数据部分以检测溢出/粉碎有用吗?
- java - java强制获取锁?
- wordpress - 自定义 woocommerce 产品字段不适用于 CSV 导入
- c# - C#中MakeSingleTon和MakeInstance有什么区别
- reactjs - 打字稿要求传递道具,尽管 mapStateToProps 已经传递了
- authentication - 微服务中的身份验证(不同的选项,优点和缺点)
- c# - 在 Aurelia 中支持 pushstate 和非 pushstate url
- graphics - Threejs中ShaderMaterial中的金属度
- jquery - 使用 JQUERY 更改第一个孩子的 CLASS