使用 gradle clojurephant 插件构建的 clojure 项目 "namespace not found after loading "

clojure project build using gradle clojurephant plugin "namespace not found after loading "

我正在尝试使用 gradle 构建工具和 clojurephant 插件来构建 clojure 项目。

项目在github here

我的构建文件是 -

    plugins {
        id 'dev.clojurephant.clojure' version '0.6.0'
        id 'application'
    }

    group 'org.example'
    version '0.0.1-SNAPSHOT'
    repositories {
        maven {
            name = 'Clojars'
            url = 'https://repo.clojars.org'
        }
        mavenCentral()
    }


    dependencies {
        implementation 'org.clojure:clojure:1.10.3'

        testRuntimeOnly 'org.ajoberstar:jovial:0.3.0'

        devImplementation 'org.clojure:tools.namespace:1.1.0'
    }

    tasks.withType(Test) {
        useJUnitPlatform()
    }

下面是 calc.clj 目录下的文件 src/main/clojure/math 目录

(ns math.calc)
(defn add [x y] (+ x y))
(defn demo [x y] (* 2 x y))

下面是 calc_test.clj 目录 src/test/clojure/math 目录

(ns math.calc)
(defn add [x y] (+ x y))
(defn demo [x y] (* 2 x y))

当我 运行 gradle test 时,出现以下错误 -

$ gradle test

Task :compileTestClojure FAILED Syntax error compiling at (REPL:2:1). namespace 'math.calc-test' not found after loading '/math/calc_test'

失败:构建失败,出现异常。

  • 出了什么问题: 任务“:compileTestClojure”执行失败。

Compilation failed. See output above.

  • 尝试:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 8.0 不兼容。

您可以使用“--warning-mode all”来显示各个弃用警告并确定它们是否来自您自己的脚本或插件。

https://docs.gradle.org/7.3/userguide/command_line_interface.html#sec:command_line_warnings

1 秒内构建失败 2 项可操作任务:1 项已执行,1 项最新

我的项目设置有什么问题?我该如何解决这个错误?

您在测试中使用了错误的 ns。我一定是 (ns math.calc-test)