1

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

当我重命名一个方法或删除一个类时,Liferay 不会清理任何东西,方法/类/表就在那里。

如何从 portlet 项目中清除这些旧工件,效果与我从头开始重新编写它的效果相同?

4

1 回答 1

1

警告:首先进行备份。

清理文件系统

  • 退出任何 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
  • 再次运行服务生成器

随意添加您的提示和更多要清洁的东西!

于 2016-02-05T08:46:53.947 回答