更改 JCR 包的包模式
Change package mode of JCR Package
有没有办法将现有 JCR 包的打包模式从替换更改为更新?据我所知,无法在 AEM 包管理器对话框中设置打包模式。
我究竟需要做什么?只需更改 filter.xml 并重新打包?不知何故,这对我不起作用。我错过了什么吗?
您必须更改 filter.xml
以及 definition
子文件夹中的 .content.xml
。
这是一个小的批处理脚本,可以解包、更改模式并重新打包一个包。
如果你保存为modPkg,你可以用两个参数调用它:
modPkg FILENAME FITLERMODE
其中 FILENAME
是包的文件名,FILTERMODE
应该是 merge
、update
或 replace
.
#!/bin/bash
filename=
filterMode=
echo "Extracting package."
jar xf
echo "Modifying filter.xml."
perl -pe 's|(root="[^\"]+")(( )*mode="[^\"]+"( )*)?(( )*(/)?>)| mode="'"${filterMode}"'"|g' META-INF/vault/filter.xml > META-INF/vault/filter.xml.backup
rm -rf META-INF/vault/filter.xml
mv META-INF/vault/filter.xml.backup META-INF/vault/filter.xml
echo "Modifying .content.xml in definition-folder."
perl -pe 's|mode="[^\"]+"|mode="'"${filterMode}"'"|g' META-INF/vault/definition/.content.xml > META-INF/vault/definition/.content.xml.backup
rm -rf META-INF/vault/definition/.content.xml
mv META-INF/vault/definition/.content.xml.backup META-INF/vault/definition/.content.xml
echo "Repackaging."
jar -cfM ${filterMode}-${filename} META-INF jcr_root
echo "Deleting temp files."
rm -rf META-INF
rm -rf jcr_root
echo "Finished."
可能有更优雅的方法来完成这项工作,但它很简单。
有没有办法将现有 JCR 包的打包模式从替换更改为更新?据我所知,无法在 AEM 包管理器对话框中设置打包模式。 我究竟需要做什么?只需更改 filter.xml 并重新打包?不知何故,这对我不起作用。我错过了什么吗?
您必须更改 filter.xml
以及 definition
子文件夹中的 .content.xml
。
这是一个小的批处理脚本,可以解包、更改模式并重新打包一个包。
如果你保存为modPkg,你可以用两个参数调用它:
modPkg FILENAME FITLERMODE
其中 FILENAME
是包的文件名,FILTERMODE
应该是 merge
、update
或 replace
.
#!/bin/bash
filename=
filterMode=
echo "Extracting package."
jar xf
echo "Modifying filter.xml."
perl -pe 's|(root="[^\"]+")(( )*mode="[^\"]+"( )*)?(( )*(/)?>)| mode="'"${filterMode}"'"|g' META-INF/vault/filter.xml > META-INF/vault/filter.xml.backup
rm -rf META-INF/vault/filter.xml
mv META-INF/vault/filter.xml.backup META-INF/vault/filter.xml
echo "Modifying .content.xml in definition-folder."
perl -pe 's|mode="[^\"]+"|mode="'"${filterMode}"'"|g' META-INF/vault/definition/.content.xml > META-INF/vault/definition/.content.xml.backup
rm -rf META-INF/vault/definition/.content.xml
mv META-INF/vault/definition/.content.xml.backup META-INF/vault/definition/.content.xml
echo "Repackaging."
jar -cfM ${filterMode}-${filename} META-INF jcr_root
echo "Deleting temp files."
rm -rf META-INF
rm -rf jcr_root
echo "Finished."
可能有更优雅的方法来完成这项工作,但它很简单。