如何在 Grails 4.0.3 中导入专有库

How to import a proprietary library in Grails 4.0.3

我试图在我的 grails 4.0.3 项目中导入一个专有的 jar 库 (ICOMConector.jar),但它向我发送了一个错误。

在 IntelliJ 中,我右键单击项目文件夹并访问打开模块设置。然后我点击库并选择我的罐子。紧接着,单击 Module / Dependencies 并在编译范围内选择该 jar。

在 build.gradle 文件中我放了这个 flatDir,因为我项目中的 jar grails 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 运行-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'.
> 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 中实例化 class,以便更容易验证它是否按预期工作。

谁能帮我导入这个库。我的一个朋友在 Spring 引导项目中这样做了并且它起作用了,所以问题似乎是 Grails 中的错误配置。

package detran.mspid


import com.workers.icom.ICOMConector


class BootStrap {

    def init = { servletContext ->
        ICOMConector icom = new ICOMConector()

    }
    def destroy = {
    }
}

这就是我在 build.gradle 中使用 grails 4.0.3 中的库的内容(不过至少从 grails 3 开始就是这样)。这与您在 runtime 范围内尝试的几乎相同。

compile files("lib/opencsv-2.3.jar")
runtimeOnly fileTree(dir: './lib', include: ['*.jar'])

完全有可能其中一个或两个都是不必要的...