- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始用 groovy 编程,我想知道我什么时候使用 GroovyShell (new File ("script.groovy").txt) .evaluate (),
脚本类是否在类路径中看到依赖关系,我尝试了这个例子,它产生了以下错误。
// main.groovy
@Grapes([
@Grab(group='org.slf4j', module='slf4j-api', version='1.6.1'),
@Grab(group='ch.qos.logback', module='logback-classic', version='0.9.28')
])
import groovy.lang.GroovyShell;
import java.io.File;
new GroovyShell().evaluate(new File("C:\\Users\\Dev\\Desktop\\logger.groovy").text);
// logger.groovy
import org.slf4j.*
import groovy.util.logging.Slf4j
@Slf4j
class HelloWorldSlf4j {
def execute() {
log.debug 'Execute HelloWorld.'
log.info 'Simple sample to show log field is injected.'
}
}
def helloWorld = new HelloWorldSlf4j()
helloWorld.execute()
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:869)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:979)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:967)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.codehaus.groovy.transform.LogASTTransformation$AbstractLoggingStrategy.classNode(LogASTTransformation.java:346)
... 38 more
最佳答案
如果你想要 logger.groovy
文件使用与 main.groovy
相同的类加载器脚本,你需要用 GroovyShell
传递它构造函数。您可以通过调用 this.class.classLoader
获取当前的类加载器.
@Grapes([
@Grab(group='org.slf4j', module='slf4j-api', version='1.6.1'),
@Grab(group='ch.qos.logback', module='logback-classic', version='0.9.28')
])
import groovy.lang.GroovyShell
import java.io.File
new GroovyShell(this.class.classLoader).evaluate(new File("logger.groovy"))
$ groovy main.groovy
16:17:11.325 [main] DEBUG HelloWorldSlf4j - Execute HelloWorld.
16:17:11.327 [main] INFO HelloWorldSlf4j - Simple sample to show log field is injected.
关于java - GroovyShell 和类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60708434/
我开始用 groovy 编程,我想知道我什么时候使用 GroovyShell (new File ("script.groovy").txt) .evaluate (), 脚本类是否在类路径中看到依赖
我有一个 groovy 脚本需要从外部 groovy 脚本解析一个类。我不确定如何传递参数。这是有效的: 我正在运行的 Groovy 脚本使用这一行从 external.groovy 解析外部类: n
现在,当我尝试在 Groovy 中评估一段代码时,我必须做这样的事情: new GroovyShell(new Binding([var1:var1])).evaluate(line) 当您定义了很多
我正在尝试将 groovy 嵌入到大型 Java 应用程序中。 Java 应用程序应该在启动时加载一些实用的 Groovy 脚本。 然后应用程序应该多次运行其他脚本。还需要在 GUI 中输入一些代码并
例如,如果我执行一个 Groovy 脚本,它修改 String 元类,添加一个方法 foo() GroovyShell shell1 = new GroovyShell(); shell1.evalu
考虑这段代码 def RespJson = RespSlurper.parseText(content) def RespNode= "RespJson"+"."+ assertionKey
我正在尝试在我的 java 应用程序中使用 GroovyShell 来运行代码。该代码将用于测试,并在程序完成时导出到 java 文件。为了方便用户,我希望 groovy 的输入与将要执行的 java
我是 Groovy 的新手,所以我希望答案不是很明显... 假设我有一个脚本“Test.groovy”: class A { def greet() {println "Hey there!"
我使用 GroovyShell 类创建了一个 groovy 引擎。然后我用“evaluate”方法运行一堆语句。 有没有办法捕获引擎的输出,以便我可以获得“println”调用输出? 尽管它是一个 s
特别是http://docs.groovy-lang.org/latest/html/api/groovy/util/GroovyScriptEngine.html和 http://docs.groo
我只想在给定的 GroovyShell 上下文中使用自定义 IntegerMetaClass。 原因是为了不让我的潜在“干扰”IntegerMetaClass 污染整个运行时。 当我将我的 Integ
我对 Groovy 很陌生。如何列出我传递给 Binding 构造函数的所有变量? 考虑到我有以下几点: @Test public void test() { List outputNames
我终于让 Gradle 下载依赖项并将它们传递给我从 gralde 任务调用的 groovy 脚本(因为 gradle 似乎不允许我使用葡萄)。 下面的代码是我能够让它工作的唯一方法。这是正确的方法吗
我正在尝试使用 GroovyShell评估 Grails 应用程序中的一些代码片段,但我似乎无法访问我们的 Grails 域类。例如,当我尝试评估这样的事情时: Eval.me("my.package
我编写项目,在其中使用 Groovy 和 Java。我的项目中有这个 Groovy 脚本: int sum(def a, def b) { return (int)a + (int)b; } 在我的
我需要从我的 Java 应用程序运行一些外部代码,这些代码将经常更新并与应用程序的其余部分正交。由于我不会为每次代码更改(以及其他原因)重新部署整个应用程序,我们选择使用 groovy对于此代码,并将
我正在尝试使用 Groovy 为我的应用程序创建交互式脚本/宏模式。该应用程序是 OSGi,脚本可能需要的大部分信息事先并不知道。我想我可以使用 GroovyShell 并多次调用 eval() 以在
我正在使用 eclipse 和 groovy 插件。我正在构建一个测试工具来调试和测试 groovy 脚本。这些脚本非常简单但很长,其中大多数只是 if/else/return。我发现我可以使用 Gr
我想添加 groovy-shell-server到我们的应用程序。我们最近遇到了几个生产问题,调用内部 API 可以加快诊断速度,甚至可以提供短期修复。 Groovy-shell-server 提供了
对于监控系统,我需要评估由 bool 表达式表示的自定义检查。例如,我有一个简单的伪代码条件(它们可以更复杂): if (webservice is unavailable) and (there a
我是一名优秀的程序员,十分优秀!