Как полностью удалить сущность в 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 во всех файлах вашего проекта, чтобы увидеть, все еще ли вы нашли остатки, потому что в противном случае некоторые компоненты могут жаловаться во время выполнения, что объявленный класс не может быть найден.

Другие вопросы по тегам