如何在kscript(Kotlin)中使用外部存储库? [英] How to use external repository in kscript (Kotlin)?

查看:109
本文介绍了如何在kscript(Kotlin)中使用外部存储库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使kscript从外部Maven存储库加载jdbc的正确方法是什么?

What are correct way to get kscript to load jdbc from external maven repository?

我的脚本开头是

#!/usr/bin/env kscript
@file:DependsOn("oracle.jdbc:ojdbc8:12.2.0.1")
@file:MavenRepository("infosynergi","http://maven.infosynergi.no" )

import java.sql.*

我收到此错误:

[kscript]解决依赖项... [kscript]解决 oracle.jdbc:ojdbc8:12.2.0.1 ...线程"main"中的异常 java.lang.NoClassDefFoundError:org/ietf/jgss/GSSException 在com.ning.http.client.providers.netty.NettyAsyncHttpProvider.(NettyAsyncHttpProvider.java:177) 在org.sonatype.aether.connector.async.AsyncRepositoryConnector.getDefaultProvider(AsyncRepositoryConnector.java:246) 在org.sonatype.aether.connector.async.AsyncRepositoryConnector.getProvider(AsyncRepositoryConnector.java:241) 在org.sonatype.aether.connector.async.AsyncRepositoryConnector.(AsyncRepositoryConnector.java:154) 在org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory.newInstance(AsyncRepositoryConnectorFactory.java:106) 在org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:346) 在org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) 在org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) 在org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) 在org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281) 在org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186)处 在org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:191) 在org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333) 在com.jcabi.aether.Aether.fetch(Aether.java:228) 在com.jcabi.aether.Aether.resolve_aroundBody2(Aether.java:180) 在com.jcabi.aether.Aether $ AjcClosure3.run(Aether.java:1) 在org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) 在com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208) 在com.jcabi.aspects.aj.MethodLogger.ajc $ inlineAccessMethod $ com_jcabi_aspects_aj_MethodLogger $ com_jcabi_aspects_aj_MethodLogger $ wrap(MethodLogger.java:1) 在com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136) 在com.jcabi.aether.Aether.resolve(Aether.java:177) 在com.jcabi.aether.Aether.resolve_aroundBody0(Aether.java:163) 在com.jcabi.aether.Aether $ AjcClosure1.run(Aether.java:1) 在org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) 在com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208) 在com.jcabi.aspects.aj.MethodLogger.ajc $ inlineAccessMethod $ com_jcabi_aspects_aj_MethodLogger $ com_jcabi_aspects_aj_MethodLogger $ wrap(MethodLogger.java:1) 在com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136) 在com.jcabi.aether.Aether.resolve(Aether.java:156) 在kscript.app.DependencyUtilKt.resolveDependenciesViaAether(DependencyUtil.kt:77) 在kscript.app.DependencyUtilKt.resolveDependencies(DependencyUtil.kt:51) 在kscript.app.KscriptKt.main(Kscript.kt:158) 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 方法) 在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.base/java.lang.reflect.Method.invoke(Method.java:566) 在org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:61) 在org.jetbrains.kotlin.runner.Main.run(Main.kt:109) 在org.jetbrains.kotlin.runner.Main.main(Main.kt:119)处由于:java.lang.ClassNotFoundException:org.ietf.jgss.GSSException 在java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) 在java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) 在java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ...还有38

[kscript] Resolving dependencies... [kscript] Resolving oracle.jdbc:ojdbc8:12.2.0.1...Exception in thread "main" java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.(NettyAsyncHttpProvider.java:177) at org.sonatype.aether.connector.async.AsyncRepositoryConnector.getDefaultProvider(AsyncRepositoryConnector.java:246) at org.sonatype.aether.connector.async.AsyncRepositoryConnector.getProvider(AsyncRepositoryConnector.java:241) at org.sonatype.aether.connector.async.AsyncRepositoryConnector.(AsyncRepositoryConnector.java:154) at org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory.newInstance(AsyncRepositoryConnectorFactory.java:106) at org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:346) at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453) at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216) at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186) at org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:191) at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333) at com.jcabi.aether.Aether.fetch(Aether.java:228) at com.jcabi.aether.Aether.resolve_aroundBody2(Aether.java:180) at com.jcabi.aether.Aether$AjcClosure3.run(Aether.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208) at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1) at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136) at com.jcabi.aether.Aether.resolve(Aether.java:177) at com.jcabi.aether.Aether.resolve_aroundBody0(Aether.java:163) at com.jcabi.aether.Aether$AjcClosure1.run(Aether.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208) at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1) at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136) at com.jcabi.aether.Aether.resolve(Aether.java:156) at kscript.app.DependencyUtilKt.resolveDependenciesViaAether(DependencyUtil.kt:77) at kscript.app.DependencyUtilKt.resolveDependencies(DependencyUtil.kt:51) at kscript.app.KscriptKt.main(Kscript.kt:158) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:61) at org.jetbrains.kotlin.runner.Main.run(Main.kt:109) at org.jetbrains.kotlin.runner.Main.main(Main.kt:119) Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSException at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 38 more

推荐答案

您的脚本正确.这是kscript中的已知错误,请参阅 https://github.com/holgerbrandl/kscript/issues/239 .目前唯一的解决方法是使用java8.

Your script is correct. It's a known bug in kscript, see https://github.com/holgerbrandl/kscript/issues/239. The only workaround at the moment is to use java8.

更新 此问题已在kscript v3.0中修复

Update This problem was fixed in kscript v3.0

这篇关于如何在kscript(Kotlin)中使用外部存储库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆