当前位置: 首页 > 知识库问答 >
问题:

如何启动本地构建的金属语言服务器?

华善
2023-03-14

我正在尝试将emacs设置为scala编辑器。为此,我正在尝试安装相应模式工作的金属。

然而,由于某种原因,金属要么无法从emacs安装,要么在安装Coursier时,对emacs没有响应。

因此,为了探索所有选项,我决定使用金属源代码(来自Github?但我遇到了无法正确利用它们的问题。

我能做些什么让emacs从源头获得金属?

目前,我已尝试使用

sbt publishLocal

然后尝试运行生成的jar,结果可预测:

线程“main”java中出现异常。lang.NoClassDefFoundError:scala处的scala/collection/Seq。元。金属。主要的main(main.scala)由:java引起。lang.ClassNotFoundException:scala。收集Seq at java。基本/jdk。内部的装载机。内置ClassLoader。java上的loadClass(BuiltinClassLoader.java:581)。基本/jdk。内部的装载机。ClassLoaders$AppClassLoader。java上的loadClass(ClassLoaders.java:178)。基本/java。lang.ClassLoader。loadClass(ClassLoader.java:522)。。。还有1个

Process metals stderr在线程“main”java中完成了异常。lang.NoClassDefFoundError:scala处的scala/collection/Seq。元。金属。主要的main(main.scala)由:java引起。lang.ClassNotFoundException:scala。收集Seq at java。基本/jdk。内部的装载机。内置ClassLoader。java上的loadClass(BuiltinClassLoader.java:581)。基本/jdk。内部的装载机。ClassLoaders$AppClassLoader。java上的loadClass(ClassLoaders.java:178)。基本/java。lang.ClassLoader。loadClass(ClassLoader.java:522)。。。还有1个

加工金属表面处理

根据scala网站上的说明,我在我的系统中安装了sbt。

我应该如何设置系统,以便金属可以发射和使用?

共有1个答案

景星光
2023-03-14

您不需要从源代码中编译金属,而只需要从Emacs中使用它。检查官方文件:Emacs | Metals,尤其是要求和安装章节。它提到

接下来,您必须安装metals服务器。当在scala缓冲区中启用lsp模式或通过lsp安装服务器命令时,Emacs可以为您执行此操作。您还可以手动执行coursier install metals并正确配置$PATH变量。

如果安装有问题,请尝试向Scalameta Discord寻求帮助。还有一个专用的#emacs用户频道。

也就是说,如果您仍然希望出于任何其他原因(例如,贡献金属代码和在本地测试更改)使用本地发布的金属工件,那么您应该能够做到这一点。贡献文档描述了如何使用代码库并测试您的本地金属版本。

简而言之,在您运行sbt PublishLocal后,您需要更新编辑器中的服务器版本设置并运行Metals: Restart server命令。它应该会拾取本地发布的版本。

 类似资料:
  • 运行命令: 日志: 2020-03-27 03:47:12.744007:I tensor flow _ serving/core/loader _ harness . cc:87]成功加载可服务版本{ name:docker _ test version:1 } e 0327 03:47:12.745641810 6 server _ chttp 2 . cc:40]{ " created ":

  • 问题内容: 我在Jenkins工作,我在其中构建Web应用程序并通过命令启动它: 但是当我在Jenkins中进行此构建时,由于服务器仍在提示符下运行,因此无法 完成构建: 那么,如何在Jenkins中运行grunt服务器,以使服务器仍然运行但构建成功完成? 问题答案: 该命令通常通过节点打开本地服务器,您可以在该服务器上进行测试。如果您使用yeoman或其他,则希望Jenkins运行该命令。 问题

  • 当我在Eclipse中的服务器上运行我的应用程序时,我会得到这样的消息:“Tomcat V8.0服务器在localhost上所需的端口8080已经在使用中。该服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动该服务器,您需要停止其他进程或更改端口号”。其他项目关闭。有人能帮我解决这个问题吗?我是爪哇初学者。

  • 为多种语言本地化应用程序是一项乏味的任务,而且经常一遍又一遍地完成相同的工作:例如,几乎每个android应用程序中都包含“确定”、“取消”等短语。 移动应用程序的本地化-有任何可用于基础的资源吗?这个问题已经问了三年了,我想知道从那以后是否有什么变化。 是否有任何综合性的图书馆/藏书馆负责这方面的工作?所以我只需要翻译实际应用程序特定的字符串?

  • Gradle 是以 Groovy 语言为基础, 基于DSL (领域特定语言) 语法的自动化构建工具,但是它增加了一些额外的特性,这使得Gradle更加的容易去阐释构建. 一个构建脚本能够包含任何Groovy语言的元素 ( Any language element except for statement labels ), 每个构建脚本都使用UTF-8编码.

  • 如果我们使用spring boot构建所有微服务,那么可以使用Eureka服务器(@EnableEurekaServer)发现所有微服务(@EnableEurekaClient)。如果某些微服务是使用其他技术构建的,那么在云(PCF、AWS等)中如何实现发现、负载平衡、反向代理(网关)? 我在网上读了很多关于微服务的博客,我没有得到适当的信息。