Как полностью удалить сущность в Liferay (включить класс в файл JAR)
Я использую Liferay 6.2 GA5 Community Edition.
Пример дела У меня есть 2 лица в моем service.xml
скажем, сущность 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
, и я удалил соответствующие файлы JAVA, сгенерированные в моем исходном коде, затем я снова запускаю Service Builder, но внутри my-app-service.jar
сущность А все еще существует.
Как мне полностью удалить его из файла JAR? потому что в моем случае Service Builder не удалит его, хотя я удалил сгенерированные файлы JAVA вручную.
1 ответ
ServiceBuilder является генератором кода, поэтому он генерирует только новый код.
Если вы хотите избавиться от некогда сгенерированного кода, есть гораздо больше, чем просто java-классы, от которых нужно избавиться: конфигурация Spring, конфигурация Hibernate и т.д. Все они должны быть удалены вручную. И если код все еще остается в банке, старый добрый ant clean
(или любой используемой вами среде сборки) следует избавиться от файла my-app-service.jar (который в противном случае вы также можете просто удалить вручную, чтобы он был перестроен при следующем запуске процесса сборки или ServiceBuilder)
Я рекомендую искать вхождения A во всех файлах вашего проекта, чтобы увидеть, все еще ли вы нашли остатки, потому что в противном случае некоторые компоненты могут жаловаться во время выполнения, что объявленный класс не может быть найден.