Groovy:@Grab包含与classpath包含有何不同?
发布时间:2020-12-14 16:30:28 所属栏目:大数据 来源:网络整理
导读:1.一般来说,@ Grape / @ Grab的包含与classpath包含有什么不同? 2.具体来说,什么可能导致以下行为差异? 我对xpp3有一个要求,我表示为: // TestScript.groovy@Grab(group='xpp3',module='xpp3',version='1.1.3.4.O')import org.xmlpull.v1.XmlPullParserFa
1.一般来说,@ Grape / @ Grab的包含与classpath包含有什么不同?
2.具体来说,什么可能导致以下行为差异? 我对xpp3有一个要求,我表示为: // TestScript.groovy @Grab(group='xpp3',module='xpp3',version='1.1.3.4.O') import org.xmlpull.v1.XmlPullParserFactory; println "Created: " + XmlPullParserFactory.newInstance() 运行$groovy TestScript.groovy失败了
但是,如果我手动将Grape提取的.jar添加到我的Groovy类路径中: $groovy -cp ~/.groovy/grapes/xpp3/xpp3/jars/xpp3-1.1.3.4.O.jar TestScript.groovy ……然后一切正常. 解决方法
Grab使用ivy从maven核心存储库中获取指定的库(以及所有依赖项).然后,它将这些下载的库添加到运行当前脚本的加载器的类路径中.
将jar添加到类路径只是将指定的jar添加到系统类路径中. 由于此示例中没有依赖项,因此可能需要由系统类加载器加载库. 要检查这一点,请尝试添加 @GrabConfig(systemClassLoader= true) @Grab(group='xpp3',version='1.1.3.4.O') 而不是你现在拥有的一条线 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |