关注磁盘设置
temp/
Folder/
myPackage/
Person.groovy
test.groovy
script.groovy
'script.groovy'文件内容
import myPackage.Person
new Person()
'test.groovy'文件内容
def cl = new GroovyClassLoader(this.getClass().classLoader)
cl.addURL (new URL ('file://C:/temp/Folder'))
new GroovyShell(cl).evaluate (new File ('C:/temp/script.groovy'))
问题:
“groovy c:\ temp \ test.groovy”结果
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
failed:
C:\temp\script.groovy: 1: unable to resolve class myPackage.Person
@ line 1, column 1.
import myPackage.Person
^
1 error
但'groovy -cp C:\ temp \ Folder c:\ temp \ test.groovy'当然有效。
我的逻辑错误在哪里?不应该从添加的类路径中加载准备好的类加载器类Person?
此致 格特
答案 0 :(得分:1)
尝试通过Jenkins执行Groovy文件时遇到类似的问题。
09:00:45 ERROR: startup failed:
09:00:45 automation_foodoo.groovy: 11: unable to resolve class com.foo.fooclass
09:00:45 @ line 11, column 1.
09:00:45 import com.foo.fooclass
09:00:45 ^
09:00:45
09:00:45 1 error
09:00:45
09:00:48 Finished: FAILURE
所采取的行动没有取得积极成果:
在.bash_profile中设置CLASSPATH
CLASSPATH=/Users/Shared/Jenkins/Home/workspace/JobName/src/main/groovy
export CLASSPATH
通过设置属性内容,通过“注入环境变量...”设置在Jenkins本身中设置类路径
CLASSPATH=$CLASSPATH=/Users/Shared/Jenkins/Home/workspace/JobName/src/main/groovy
通过具有ANY'import'语句的Groovy cli运行任何Groovy文件将返回相同的'无法解析类'
就像您在原始帖子中提到的那样,当我通过在cli中包含'-cp'设置来运行Groovy文件时,它运行良好。
我将自己添加到我的信息中,希望重新点燃这篇文章的热情,并找到一个找到答案的人:)