Liferay主题的唯一ID

Liferay主题的唯一ID,liferay,liferay-theme,Liferay,Liferay Theme,我们为Liferay创建的主题有一个问题,对我来说,似乎我们做错了什么,因为这似乎是一个非常愚蠢的问题。我们为所有插件使用Maven构建,因此有一个包含版本号的构建工件。部署主题时,Liferay似乎会根据主题的外观XML中指定的主题名称和.war文件的名称为主题创建一个ID。它看起来有点像xxxx\u WAR\u yyyy,这让我很困惑。当我们部署新版本的主题时,Liferay将为其创建不同的ID,因此所有使用“旧”主题的页面将不会更新为新版本 必须有某种方法为主题指定一个永远不会更改的唯一I

我们为Liferay创建的主题有一个问题,对我来说,似乎我们做错了什么,因为这似乎是一个非常愚蠢的问题。我们为所有插件使用Maven构建,因此有一个包含版本号的构建工件。部署主题时,Liferay似乎会根据主题的外观XML中指定的主题名称和.war文件的名称为主题创建一个ID。它看起来有点像xxxx\u WAR\u yyyy,这让我很困惑。当我们部署新版本的主题时,Liferay将为其创建不同的ID,因此所有使用“旧”主题的页面将不会更新为新版本


必须有某种方法为主题指定一个永远不会更改的唯一ID,无论主题部署为什么文件。在我看来,文件名对Liferay没有任何意义。有没有办法做到这一点?显然,我们可以总是使用固定的文件名来部署文件,但在我看来,似乎我们做错了什么,缺少配置设置或其他什么。有没有办法在主题上强制使用唯一ID?

在主题的pom.xml项目中,给出以下内容

你的主题
${project.artifactId}

当您部署任何版本的主题时,这应该会创建一个同名工件。

根据问题的第一段,我认为这是一个解决方案,如果您首先禁用旧版本的主题(不仅从管理部分禁用,而且从webapps中删除特定的主题目录),然后部署较新版本的主题。接下来从liferay管理部分为所有公共页面启用较新版本的主题。如果选中,则在所有页面中应用了较新版本的主题。如果你愿意,也可以这样尝试。希望这会有所帮助。

liferay外观中的“内部外观标签”。xml@LuckyBoy是的,但此处指定的主题id将仅是
xxxx_WAR_yyyy
中的
xxxx
部分,因此我无法完全控制主题id。有一部分是从.WAR文件的名称生成的。正如我在问题中提到的,我知道这是一个可能的解决办法。但我不喜欢这样的想法,即部署文件的名称对ID有任何影响,ID实际上与每个页面一起存储在数据库中,并决定页面的显示方式。我想有一个解决方案,我可以自己指定100%的主题ID。我不认为这会起作用,因为我们对不同的页面有不同的主题设置,所以更改公共页面的主题可能不会影响所有子页面。好的,那么您可以只为所需页面(即子页面)启用该主题。在liferay管理部分中,可以为不同的页面选择不同的主题。
<artifactId>your-theme</artifactId>
<name>${project.artifactId}</name>