Groovy无法解析类但在groovyconsole中工作

时间:2016-01-12 15:47:14

标签: groovy gradle import groovy-console

尝试将 gpars withPool方法导入到我的项目中。导入在 groovyconsole 中工作,但在gradle中构建时不起作用。

groovyconsole 和gradle都在运行groovy版本2.4.5

有什么想法吗?

Groovy控制台

import static groovyx.gpars.GParsPool.withPool
withPool(2) { (1..5).collectParallel { println it.toString() } }

输出:

1
3
2
4
5
Result: [null, null, null, null, null]

Gradle compileGroovy

与上面相同的导入步骤:

import static groovyx.gpars.GParsPool.withPool

Gradle输出:

:compileGroovystartup failed:
C:\Programming\Projects\groovy\src\main\groovy\lib.groovy: 18: unable to resolve class groovyx.gpars.GParsPool
 @ line 18, column 1.
   import static groovyx.gpars.GParsPool.withPool
   ^

1 error

 FAILED

2 个答案:

答案 0 :(得分:1)

如果您希望将某些内容导入构建脚本,那么您必须将其作为构建脚本依赖项提供,以便让Gradle知道,在哪里找到它,就像:

buildscript {    
    repositories {
        mavenCentral()
        jcenter()
    }

    dependencies {
        classpath group: 'org.codehaus.gpars', name: 'gpars', version: '1.1.0'
    }
}

import static groovyx.gpars.GParsPool.withPool

答案 1 :(得分:1)

如果您导航到安装了groovy的位置 - 可能位于$GROOVY_HOME下并列出您将注意到lib文件夹的文件夹。列出lib文件夹的内容显示gpars-1.2.1.jar存在于那里(groovy v2.4.5)。

当通过 groovysh groovyConsole 启动groovy时,位于lib文件夹中的所有这些jar文件都会添加到类路径中。

然而,当涉及到gradle并且@Stanislav回答你需要手动将它添加到类路径时,这不会发生。