【问题标题】:Run Kotlin REPL from context of my Maven project?从我的 Maven 项目的上下文中运行 Kotlin REPL?
【发布时间】:2016-02-24 20:25:09
【问题描述】:

如何在我的 Maven 项目的上下文中运行 Kotlin REPL?

这可行,但很丑:

kotlinc-jvm -cp target/classes/:`ruby -e "puts Dir['target/**/*.jar'].join(':')"`

我尝试了以下不同的变体(在使用 Maven 将编译器 JAR 作为依赖项复制之后),但没有任何效果 (Error: Could not find or load main class org.jetbrains.kotlin.runner.Main):

<plugin>  
  <groupId>org.codehaus.mojo</groupId> 
  <artifactId>exec-maven-plugin</artifactId> 
  <version>1.1.1</version> 
  <executions>
    <execution>
    <goals>
      <goal>exec</goal> 
    </goals>
    </execution>
  </executions>
  <configuration>
    <executable>java</executable>
    <arguments>
      <argument>-classpath</argument>
      <classpath/>
      <argument>-classpath</argument>
      <argument>${project.basedir}/target/dependency/kotlin-compiler-1.0.0.jar</argument>
      <argument>org.jetbrains.kotlin.runner.Main</argument>
    </arguments>
  </configuration>
</plugin>

【问题讨论】:

    标签: read-eval-print-loop kotlin


    【解决方案1】:

    请改用K2JVMCompiler,因为它目前是kotlin-compiler.jar 中REPL 的入口点:

    <configuration>
        <executable>java</executable>
        <arguments>
          <argument>-classpath</argument>
          <classpath/>
          <argument>-classpath</argument>
          <argument>${project.basedir}/target/dependency/kotlin-compiler-1.0.0.jar</argument>
          <argument>org.jetbrains.kotlin.cli.jvm.K2JVMCompiler</argument>
        </arguments>
      </configuration>
    

    【讨论】:

    • 谢谢!这确实让 Maven 找到了 REPL。但是,REPL 不能接受输入,只能阻塞。我想它需要产生一个新进程。 This 可能对我有帮助,但我还没有测试过。或者,也许有一种特定于 Kotlin 的方法可以做到这一点?我认为这将是 Kotlin REPL 的一个非常常见的用例......
    • 目前不可能,但目前正在处理中。您可以在几周内获得消息。到时候我会更新答案。
    • 这方面是否有任何进展(在 Maven 上下文中加载 REPL)?经过长时间的休息后,我正在重新评估 Kotlin 的新项目,这可能是一个需要考虑的因素。谢谢!
    • 自我的回答以来,我认为没有任何实质性的改善,对此感到抱歉。如果您仍然无法让 REPL 工作,请在 kotl.in/issue 报告问题,我们会进行调查。谢谢!
    猜你喜欢
    • 2018-12-05
    • 2016-12-09
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2014-12-11
    • 2016-11-07
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多