You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Clojure Maven项目启动nREPL时遇类路径错误求助

解决Maven+Clojure项目中nREPL启动的类路径错误

这个错误的核心原因是**tools.nrepl的JAR包没有被包含在启动nREPL时的JVM类路径中**。你当前把tools.nrepl依赖放在了clojure-maven-plugin自身的依赖块里,但插件的内部依赖不会自动加入到项目运行时的类路径中,导致启动nREPL时找不到对应的类文件。

下面是两种可行的解决方法:

方法一:将tools.nrepl添加为项目依赖

把tools.nrepl的依赖从插件的<dependencies>块中移到项目根级的<dependencies>里,这样Maven会把它加入到项目的运行时类路径:

<!-- 项目根级 dependencies -->
<dependencies>
  <dependency>
    <groupId>org.clojure</groupId>
    <artifactId>clojure</artifactId>
    <version>1.9.0</version>
  </dependency>
  <!-- 添加这部分 -->
  <dependency>
    <groupId>org.clojure</groupId>
    <artifactId>tools.nrepl</artifactId>
    <version>0.2.13</version>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>com.theoryinpractise</groupId>
      <artifactId>clojure-maven-plugin</artifactId>
      <version>1.8.1</version>
      <extensions>true</extensions>
      <!-- 移除插件内部的tools.nrepl依赖 -->
    </plugin>
  </plugins>
</build>

修改后重新运行mvn clojure:nrepl,应该就能正常启动nREPL了。

方法二:配置插件的类路径包含插件依赖

如果你希望tools.nrepl只作为插件的依赖而不是项目依赖,可以在插件配置中开启usePluginClasspath参数,让插件启动nREPL时包含自身的依赖:

<build>
  <plugins>
    <plugin>
      <groupId>com.theoryinpractise</groupId>
      <artifactId>clojure-maven-plugin</artifactId>
      <version>1.8.1</version>
      <extensions>true</extensions>
      <dependencies>
        <dependency>
          <groupId>org.clojure</groupId>
          <artifactId>tools.nrepl</artifactId>
          <version>0.2.13</version>
        </dependency>
      </dependencies>
      <!-- 添加配置,启用插件类路径 -->
      <configuration>
        <usePluginClasspath>true</usePluginClasspath>
      </configuration>
    </plugin>
  </plugins>
</build>

这个参数会让插件在运行nREPL目标时,把插件自身的依赖也加入到类路径中,从而找到tools.nrepl的类文件。

额外建议

  • 考虑升级clojure-maven-plugin的版本:当前使用的1.8.1是比较旧的版本(发布于2017年),最新版本已经支持更现代的Clojure版本和nREPL特性,能避免一些兼容性问题。
  • 如果后续需要更丰富的REPL功能,可以考虑使用cider-nrepl扩展,但同样需要确保它在正确的类路径中。

内容的提问来源于stack exchange,提问作者rascio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:46:14