如何在 Liferay 中完全删除实体(在 JAR 文件中包含 class)
How to Remove Entity Completely in Liferay (include class in JAR file)
我正在使用 Liferay 6.2 GA5 社区版。
示例案例我的 service.xml
中有 2 个实体,假设实体 A 和 B。
当我 运行 Service Builder 然后它会在我的源代码中生成许多 JAVA 文件,并且还会生成位于
中的 JAR 文件
".\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 的 类。
然后我尝试删除service.xml
中的实体A,并且我已经删除了我的源代码中生成的相应JAVA文件,然后我再次运行 Service Builder,但是在里面my-app-service.jar
,实体 A 仍然存在。
如何从 JAR 文件中完全删除它?因为在我的例子中,Service Builder 不会删除它,尽管我手动删除了生成的 JAVA 文件。
ServiceBuilder 是代码生成器,因此它只会生成 新代码。
如果你想摆脱曾经生成的代码,除了 java class 之外还有很多东西需要摆脱:Spring 配置、Hibernate 配置等.还有你需要照顾的吗?所有这些都必须手动删除。如果代码仍然保留在 jar 中,那么旧 ant clean
(或您使用的任何构建环境)应该摆脱 my-app-service.jar 文件(否则您也可以手动删除它,以便在下次构建过程或 ServiceBuilder 运行时重建它)
我建议在你项目的 all 文件中搜索 A 的出现,看看你是否仍然找到剩余的,因为否则某些组件可能会在运行时抱怨声明的 class 找不到。
我正在使用 Liferay 6.2 GA5 社区版。
示例案例我的 service.xml
中有 2 个实体,假设实体 A 和 B。
当我 运行 Service Builder 然后它会在我的源代码中生成许多 JAVA 文件,并且还会生成位于
中的 JAR 文件".\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 的 类。
然后我尝试删除service.xml
中的实体A,并且我已经删除了我的源代码中生成的相应JAVA文件,然后我再次运行 Service Builder,但是在里面my-app-service.jar
,实体 A 仍然存在。
如何从 JAR 文件中完全删除它?因为在我的例子中,Service Builder 不会删除它,尽管我手动删除了生成的 JAVA 文件。
ServiceBuilder 是代码生成器,因此它只会生成 新代码。
如果你想摆脱曾经生成的代码,除了 java class 之外还有很多东西需要摆脱:Spring 配置、Hibernate 配置等.还有你需要照顾的吗?所有这些都必须手动删除。如果代码仍然保留在 jar 中,那么旧 ant clean
(或您使用的任何构建环境)应该摆脱 my-app-service.jar 文件(否则您也可以手动删除它,以便在下次构建过程或 ServiceBuilder 运行时重建它)
我建议在你项目的 all 文件中搜索 A 的出现,看看你是否仍然找到剩余的,因为否则某些组件可能会在运行时抱怨声明的 class 找不到。