グルーヴィーdefualt輸入デフォルトの輸入グルーヴィー
デフォルトの輸入に私たち自身のパッケージを作成することが可能ですか?グルーヴィーなランタイムがデフォルトのインポートと私自身のパッケージを使用すると言うする方法はあります.is?。
グルーヴィーdefualt輸入デフォルトの輸入グルーヴィー
デフォルトの輸入に私たち自身のパッケージを作成することが可能ですか?グルーヴィーなランタイムがデフォルトのインポートと私自身のパッケージを使用すると言うする方法はあります.is?。
このJIRAはあなたの疑問をカバーしています。
ここにその大部分があります。
class DefaultImportSourceUnitOperation extends SourceUnitOperation {
public void call(SourceUnit source) throws CompilationFailedException {
source.getAST().addImportPackage("pkg1.pgk2.pkg3.");
}
}
class DefaultImportClassLoader extends GroovyClassLoader {
protected CompilationUnit createCompilationUnit(CompilerConfiguration config, CodeSource
codeSource) {
CompilationUnit cu = super.createCompilationUnit(config, codeSource)
cu.addPhaseOperation(new DefaultImportSourceUnitOperation(), Phases.CONVERSION)
return cu
}
}
パッケージ宣言の最後に.
を追加することを忘れないようにしてください。
Goodluck!
ImportCustomizer
ともっと簡単な方法があるのGroovy 1.8ので:
def importCustomizer = new ImportCustomizer()
importCustomizer.addImports('com.looneytunes.Coyote', 'com.looneytunes.RoadRunner')
importCustomizer.addStarImports('com.acme')
importCustomizer.addStaticStars('com.looneytunes.Physics')
def configuration = new CompilerConfiguration()
configuration.addCompilationCustomizers(importCustomizer)
def shell = new GroovyShell(configuration)
shell.evaluate """
new Coyote().startPlanToCatch(new RoadRunner()) // no need for explicit imports
.useContraption(new PortableHole()) // from com.acme
.withPhysicsViolation({ forgetGravity(it) }) // method from com.looneytunes.Physics
.start()
"""
どのように私はこれを使用することができますが、私はその後DefaultImportClassLoaderを使用して、このグルーヴィーファイルと別のjarファイルが作成されますか? – anish