我正在使用Groovysh,我需要使用Grape加载一些类。现在我正在尝试这个:
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent
()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
Exit
}
#The servers that we want to use
$newDNSServers = "1.1.1.1","2.2.2.2"
# Get all network adapters that already have DNS servers set
$adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DNSServerSearchOrder -ne $null}
# Set the DNS server search order for all of the previously-found adapters
$adapters | ForEach-Object {$_.SetDNSServerSearchOrder($newDNSServers)}
#Flushing DNS
ipconfig /flushdns
#Registering DNS
ipconfig /registerdns
Set-DnsClientGlobalSetting -SuffixSearchList @("mydomain.local")
然而,在我输入导入后,Groovy说
groovysh_evaluate:4:无法解析课程
奇怪的是,如果我试试这个:
> @Grab(group='group.example', module='module.example', version='1.2.3')
> import group.example.TheClass
> theClass = new TheClass()
第一次导入和声明失败,但第二次成功。这可能是一个错误,也可能是我做错了什么。我目前正在使用Groovy 2.4.12,非常感谢任何帮助。当我在脚本中尝试相同的东西时,它工作正常,所以我很困惑。我也尝试过使用interpreterMode,但也没有运气。
答案 0 :(得分:0)
我发现如果不是
import group.example.TheClass
我做
import group.example.*
有效。看起来这仍然是一个错误,但这是一个解决方案,以防其他人遇到这个问题。
答案 1 :(得分:0)
尝试这种方式:
groovy:000> import groovy.grape.Grape
===> [import groovy.grape.Grape]
groovy:000> Grape.grab(group:'net.sourceforge.htmlunit', module:'htmlunit', version:'2.44.0')
===> null
groovy:000> import com.gargoylesoftware.htmlunit.WebClient
===> [import groovy.grape.Grape, import com.gargoylesoftware.htmlunit.WebClient]