Grails 4 и Views-Json 2: сбой сборки

#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