#grails #import #jar
Вопрос:
Я пытаюсь импортировать собственную библиотеку jar (ICOMConector.jar) в моем проекте grails 4.0.3, но он отправляет мне сообщение об ошибке.
В IntelliJ я щелкнул правой кнопкой мыши папку проекта и получил доступ к настройкам открытого модуля. Затем я щелкнул в Библиотеках и выбрал свою банку. Сразу после этого щелкните в модуле / Зависимостях и выберите эту банку в области компиляции.
В файле build.gradle я поместил этот flatDir, потому что jar в моем проекте отображает структуру stardard:
repositories { maven { url "https://repo.grails.org/grails/core" } flatDir { dirs 'lib' } }
И это в том же build.gradle, я перепробовал все это, включая те, которые сейчас прокомментированы, но ошибка сохраняется.
dependencies { //implementation name: 'lib/ICOMConector.jar' //runtime files('lib/ICOMConector.jar') //runtime fileTree(dir: 'lib', include: '*.jar') compile fileTree(dir: 'lib', include: ['*.jar']) }
когда я отправляю приложение grails run-app в командной строке, возникает ошибка:
| Running application... startup failed: /media/alfredo/1TBHDD/CMB/Code projects/Grails 4/detran-mspid/grails-app/init/detran/mspid/BootStrap.groovy: 5: unable to resolve class com.workers.icom.ICOMConector **@ line 5, column 1. import com.workers.icom.ICOMConector ^ 1 error** FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileGroovy'. gt; Compilation failed; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org
Я попытался создать экземпляр класса в Bootstrap.groovy, чтобы было проще проверить, работает ли он должным образом.
Кто — нибудь может помочь мне импортировать эту библиотеку. Мой друг сделал это в проекте Spring boot, и это сработало, так что проблема, похоже, в неправильной конфигурации в Grails.
package detran.mspid import com.workers.icom.ICOMConector class BootStrap { def init = { servletContext -gt; ICOMConector icom = new ICOMConector() } def destroy = { } }
Комментарии:
1. Это, наверное, глупый вопрос… но указан ли класс с ошибкой как
ICOMConector
или вы импортируете версию класса с ошибкой?2. Я не могу воспроизвести поведение, которое вы описываете.
3. @Trebla, спасибо за ваш комментарий. У ICOMConector есть только один n, потому что он на португальском языке.
Ответ №1:
Это то, что у меня есть build.gradle
для использования библиотеки в grails 4.0.3 (хотя так было, по крайней мере, с grails 3). Это почти идентично тому, что вы пробовали с runtime
помощью scope.
compile files("lib/opencsv-2.3.jar") runtimeOnly fileTree(dir: './lib', include: ['*.jar'])
Вполне возможно, что либо одно, либо оба из них не нужны…
Комментарии:
1. скомпилировать файл(реж.: ‘lib’, включает: [‘*.jar’])