如何清理 Liferay Service Builder 的旧工件?

How to clean up old artifacts of Liferay Service Builder?

基于service.xml,Liferay 的Service Builder 生成Java 个文件、目录、其他文件和数据库表。它还从这一代之后编写的代码中提取接口。

当我重命名一个方法或删除一个 class 时,Liferay 不会清理任何东西,methods/classes/tables 只是留在那里。

如何从 portlet 项目中清除这些旧工件,效果与我再次从头开始重写一样?

警告:请先做好备份。

清理文件系统

  • 退出任何 IDE,例如 Liferay IDE、Liferay Studio、Eclipse。

  • 运行 ant clean 清除生成的工件,这样您就可以确保在执行完以下其余步骤后,唯一剩下的就是您的代码。

暂时将您的实施文件从 docroot/WEB-INF/src/yournamespace/service/impl 移开,例如将其移至您的主文件夹。

从您的 portlet 项目中删除以下文件夹(及其所有子文件夹):

  • docroot/WEB-INF/service
  • docroot/WEB-INF/sql
  • docroot/WEB-INF/src/yournamespace(再次确保您已将实施文件移至安全位置)

清理数据库

  1. 打开你的service.xml
  2. 记下<namespace>标签的内容,例如MyNamespace
  3. 在您的 Liferay 数据库中,删除所有以该命名空间加下划线开头的表,例如 MyNamespace_

重新生成

  • 运行 服务构建者
  • 将您的实施文件移回 docroot/WEB-INF/src/yournamespace/service/impl
  • 运行 再次成为服务构建者

随时添加您的提示和更多要清理的东西!