Stati c проблема с ресурсом при переходе с Grails 3 на 4 - PullRequest
0 голосов
/ 16 января 2020

Мы написали пользовательский jar, который реализует ограниченную версию стандарта OpenApi, используемого swagger. Этот jar использует реализацию ASTTransformer для генерации файла json при сборке проекта и добавляет полученный файл в каталог build/resources/main/public проекта.

Этот jar добавлен в наш проект Grails 3 с следующее добавлено к нашему application.yml

grails:
    resources:
        pattern: '/*.json'

С помощью этой настройки мы можем перейти к http://server/projectRoot/openapi_v2.json, и приложение возвращает файл stati c.

Мы сейчас находимся миграция проекта в Grails 4. Выполняя сборку проекта, файл json все еще генерируется в том же каталоге сборки, однако URL больше не возвращает файл.

Я пытался исследовать чтобы узнать, изменилось ли что-нибудь между Grails 3 и 4 в отношении конфигурации application.yml или что-то еще нужно.

Мы нашли на https://docs.grails.org/latest/guide/upgrading.html примечание о возможном добавлении sourceResources до bootRun в build.gradle, но, похоже, это не исправило его.

Так что мой вопрос: кто-нибудь знает, что может вызвать Grails 4 неправильно отобразить ресурс publi c stati c, где Grails 3 смог?

1 Ответ

0 голосов
/ 16 января 2020

Решение моей проблемы заключается в обновлении проекта jar. Клиентский проект, в который был импортирован сгенерированный jar, был обновлен до Grails 4, но проект jar все еще был Grails 3.

Я обновил проект jar до Grails 4, изменив ...

bootRun {
    addResources = true
}

to ...

bootRun {
    // addResources = true
    sourceResources sourceSets.main
}

Как только я это сделал, перекомпилировал банку и импортировал ее в другой проект, этот проект начал успешно обслуживать сгенерированный json из проекта root.

...