#grails #grails-plugin
#grails #grails-плагин
Вопрос:
Я пытаюсь обновить приложение Grails с 3.3 до 4 (на данный момент конкретно 4.0.3) и плагин Views-Json 2.0.2. Профиль является угловым.
Когда я запускаю приложение в режиме разработки, все работает. Однако, когда я пытаюсь выполнить сборку с помощью gradlew :server-api:assemble
, сборка завершается неудачей при выполнении задачи: server-api:compileGsonViews (да, переименованный ‘server’ в ‘server-api’ для ясности).
Похоже, что он не находит мои классы Java (есть несколько под src/main/java
).
Я видел ссылки на настройку пути к классу для compileGsonViews, но я не смог заставить его работать.
У кого-нибудь есть предложения?
Работает в Windows 10 с последней версией OpenJDK 1.8.x
Комментарии:
1. Я думал, что решил проблему, исправив проблему с компиляцией интеграционного теста; однако, покопавшись еще немного, я обнаружил, что это не так. Я закомментировал плагин сборки для представлений grails, и когда он был запущен с помощью командной строки, компиляция сработала — я предполагаю, что это означает, что любые представления GSON будут динамическими, я попробую тестовое развертывание, когда смогу. У меня была проблема в том, что раньше я использовал IntelliJ «smart run» команды, и я думаю, что по какой-то причине это не соответствовало комментарию плагина.
Ответ №1:
Кажется, я каким-то образом наткнулся на решение. В моем build.gradle я включил grails pathingJar, прокомментировав, что это позволило моей войне построить. Однако из-за того, что свойство было закомментировано, я не смог использовать gradlew bootRun
команду, поскольку она не удалась из-за слишком длинного пути.
Решением (для меня) было добавить свойство сборки, после чего файл сборки будет выглядеть:
def usePathing = Boolean.valueOf( System.getProperty('pathingJar', 'false') )
if (usePathing) {
grails {
pathingJar = true
}
}
Если бы я был лучше с gradle, я думаю, я мог бы (возможно) определить цель, на которую нацелен, и использовать это, но вышеупомянутое работает. Рекомендация для сборки war такая же; но для прямого запуска приложения мне нужно сделать это gradlew server-api:bootRun -DpathingJar=true