1

我正在使用 Liferay 6.2 GA5 社区版。

示例案例我的 2 个实体,service.xml比如说实体 A 和 B。

当我运行 Service Builder 时,它将在我的源代码中生成许多 JAVA 文件,并生成位于

".\my-app\liferay-plugins-sdk-6.2\portlets\my-app-portlet\docroot\WEB-INF\lib\my-app-service.jar"

我用 7-zip 打开它,我可以看到包com.mycompany.myapp.model中包含实体 A 和 B 的类。

然后我尝试删除实体A service.xml,我已经删除了我的源代码中生成的相应JAVA文件,然后我再次运行Service Builder,但是在里面my-app-service.jar,实体A仍然存在。

如何从 JAR 文件中完全删除它?因为在我的情况下,Service Builder 不会删除它,尽管我已经手动删除了生成的 JAVA 文件。

4

1 回答 1

3

ServiceBuilder 是一个代码生成器,因此它只生成新代码。

如果你想摆脱曾经生成的代码,除了java类之外还有很多东西需要摆脱:Spring配置、Hibernate配置等也需要你处理。所有这些都必须手动删除。如果代码仍然保留在 jar 中,那么旧的ant clean(或您使用的任何构建环境)应该删除 my-app-service.jar 文件(否则您也可以手动删除它,以便重新构建它下次构建过程或 ServiceBuilder 运行时)

我建议在所有项目文件中搜索出现的 A以查看是否仍然找到剩余部分,因为否则某些组件可能会在运行时抱怨找不到已声明的类。

于 2016-09-28T06:28:56.383 回答