Как импортировать проприетарную библиотеку в Grails 4.0.3

#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’])