吊索运行模式的优先顺序

时间:2016-08-22 14:13:09

标签: jar aem sling operator-precedence

我对这个问题有疑问

Question: What is the correct order of precedence to setup runmodes in aem? (From left to right, left beign the highest)?

A. System property, Sling properties file, jar file
B. jar file, sling properties file, system property
C. Sling properties file, jar file, system property
D. jar file, System property, Sling properties file

Answer : B

我已经完成了各种文档并对此进行了多次实验。

订单Adobe documentation,订单是 - Sling.properties,系统属性,jar文件

同样,this Adobe doc有一个矛盾的观点 - jar文件,sling.properties,系统属性

此外,Apache Sling Doc表示以方式(n = v)设置的选项D (-D)的任何属性都会覆盖sling.properties文件中的相同命名属性。这意味着系统属性的优先级高于sling.properties。

现在,这些都是根据文档,我实验过的是 -

我创建了一个路径$ {dir} / crx-quickstart / conf并创建了一个文件sling.properties并编写了sling.run.modes=publish。然后将jar文件重命名为cq-author-7502.jar。然后使用命令java -jar cq-author-7502.jar -Dsling.run.modes=prod

运行此jar

这是我的观察:
1.当jar运行时,Setting 'sling.run.modes' to 'publish' from sling.properties.此消息显示在终端中 2.作者模式中的实例。和
3.当我在felix console中检查实例模式时,它是prod

我对优先顺序感到困惑。因为一切似乎都与我相矛盾。

如果有人能对它有所了解,将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:1)

我认为这取决于我们何时检查运行模式优先级,安装时或稍后运行的实例以及我们如何启动实例。有两种运行模式。安装时间运行模式,自定义运行模式。

  • 安装时间运行模式 - 如official run modes documentationsetup instructions所述,安装时只能设置一次。其中包括authorpublishnosamplecontentsamplecontent
  • 自定义运行模式 - 拥有自定义运行模式,例如devqaprod

我做了一些测试(AEM 6.1),优先顺序是按照以下方式进行的

初始设置

  • 启动jar(通过双击) - 在此您无法在sling.properties中设置运行模式,首次启动脚本。 JAR名称优先。
  • 解压缩jar并在启动脚本中将运行模式指定为系统属性 - JAR名称未在此处显示。在此,您无法在sling.properties中设置运行模式。系统属性优先。

正在运行实例

  • 即使我们更改JAR名称中的运行模式,它也不会更改安装时运行模式。对于自定义运行模式,JAR文件名不适用。优先顺序为sling.properties - >指定-r选项(命令行jar选项) - >系统属性(启动脚本)

就问题(似乎是AEM认证问题)而言,背景并不清楚他们所要求的问题。 Helpx文章由社区提供,上下文可能不同。 Sling文档链接(似乎按this link AEM中的启动板版本是旧的,而不是2.4.0)。需要请Adobe确认:)。

答案 1 :(得分:0)

有两篇相互矛盾的Adobe文章说的是完全不同的文章

第1条:(假设更近)

  

使用特定运行模式启动CQ如果已定义   多个运行模式的配置,然后您需要定义哪个是   在启动时使用。有几种指定方法   运行模式使用;决议的顺序是:

     

sling.properties文件
  -r选项
  系统属性(-D)
  文件名检测

     

来自此参考:Configure Run Modes - 答案是C

第2条:

  

指定运行模式时的行为多种方式运行模式   在jar文件的命名中指定优先。如果运行模式   没有在jar文件的命名中指定,中的值   使用sling.properties文件。如果未指定运行模式   无论是jar文件的命名还是sling.properties文件的命名   使用系统属性(或JVM参数)。

     

来自此参考:Configure Run Modes - 答案是B

然而,根据我的经验并根据消除过程,我会回答答案B.