我在我的Adobe CQ项目中使用/apps/myproject/config/org.apache.sling.commons.log.LogManager.factory.config-MYPROJECT.xml
在XML中创建了一个OSGI配置JCR节点<?xml version="1.0" encoding="UTF-8"?>
<jcr:root
xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
org.apache.sling.commons.log.level="Trace"
org.apache.sling.commons.log.file="logs/myproject.log"
org.apache.sling.commons.log.file.number="5"
org.apache.sling.commons.log.file.size="5MB"
org.apache.sling.commons.log.pattern="\{0,date,HH:mm:ss.SSS} *{4}* {3} {5}"
org.apache.sling.commons.log.names="[com.mycompany.myproject]" />
问题是,当它被导入JCR时,它会显示为nt:file
,而不是根据jcr:primaryType
显示的内容,因此它在CRXDE中看起来像这样
它看起来应该是这样的
答案 0 :(得分:1)
所以我的XML标记开始如下:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root
xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
...
我最初做的是创建一个新的xml文件并放入我的配置中。我知道创建节点的其他两种方法
对于Vault导出,XML的开头如下:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" ...
在插件的情况下,它就像这样开始
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root
xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
...
但等等,你在这里看不到它,插件实际上在jcr:root
之后添加了一个friggin空格。
因此,无论XML解析器如何处理这些XML文件以在JRC中创建节点,如果根节点名称后面没有空格,则行为很奇怪。我在Windows上,使用Maven 3.2.3,使用0.0.20版本的content-package-maven-plugin和AEM 5.6.1。
答案 1 :(得分:0)
请检查content-package-maven-plugin的过滤器定义。如果您的过滤器根目录设置为
<filter>
<root>
/apps/myproject/config/org.apache.sling.commons.log.LogManager.factory.config-MYPROJECT.xml
</root>
</filter>
而不是
<filter>
<root>
/apps/myproject/config/org.apache.sling.commons.log.LogManager.factory.config-MYPROJECT
</root>
</filter>
然后它可能只是将文件放入您的存储库而不是创建配置节点。 没有.xml文件扩展名的后者是正确的。
答案 2 :(得分:0)
您需要将jcr:mixinTypes =“[]”类型添加为记录器的属性。所以您的配置将如下:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:mixinTypes="[]"
jcr:primaryType="sling:OsgiConfig"
org.apache.sling.commons.log.level="Trace"
org.apache.sling.commons.log.file="logs/myproject.log"
org.apache.sling.commons.log.file.number="5"
org.apache.sling.commons.log.file.size="5MB"
org.apache.sling.commons.log.pattern="\{0,date,HH:mm:ss.SSS} *{4}* {3} {5}"
org.apache.sling.commons.log.names="[com.mycompany.myproject]" />
希望这会有所帮助。