如何禁用构建命名空间测试的日志,在Liferay DXP上在服务器级别具有构建号

时间:2019-02-07 14:02:22

标签: liferay liferay-7 liferay-service-builder

如何防止这种情况出现在日志中:com.liferay.portal.kernel.exception.OldServiceComponentException: Build namespace Test has build number 23 which is newer than 3 in server level using XML file.

亲切的问候, 基兰。

2 个答案:

答案 0 :(得分:-1)

说明

这是Service Builder问题。

每个Service Builder模块都有一个service.xml,其中定义了<namespace></namespace>(在您的情况下为Test)。共享此名称空间的每个模块都必须使用相同的内部版本号进行部署,该内部版本号在src/main/resources/service.properties中定义,并且每次使用Service Builder重建模块时,都将增加一个内部版本号。

分辨率

浏览您的Service Builder模块,并检查每个命名空间的所有service.properties文件是否都具有相同的build.number

从提供的日志中猜测,一个模块的内部版本号为23,而您要部署的模块的内部版本号为3,因此Test命名空间的所有内部版本号设置为23应该可以解决问题

预防

为防止再次发生这种情况,请确保仅从项目的顶部目录而不是从模块目录中运行服务生成器。

通过这种方式,Service Builder将重建所有Service Builder模块,并因此将其所有内部版本号增加一个,因此它们保持不变。

答案 1 :(得分:-1)

@quatax的解释是正确的,但我会提出解决方案和预防措施。

预防:

  • 确保在服务构建器模块中使用唯一的名称空间。
  • 在提交service.properties文件时要小心。不要对它进行不必要的更改。如果更多开发人员在同一个分支上工作,他们将拥有不同的本地环境,并且人数可能会不同步,从而导致异常。

解决方案:

修复方法如上所述,可以增加文件中的数量以满足检查的要求。

或者,您可以调整保存版本信息的数据库条目。这仅用于本地DEV数据库场景。