I have a :test alias in my project, which includes :jvm-opts (as well as :extra-paths and :extra-deps). I call tools.build.api/create-basis with {:aliases [:test]} and then pass that basis to tools.build.api/java-command but that doesn't include those JVM options.
In order to pick up those JVM options, I needed to do this:
(defn run-tests
[_]
(let [basis (b/create-basis {:aliases [:test]})
combined (t/combine-aliases basis [:test])
cmds (b/java-command {:basis basis
:java-opts (:jvm-opts combined)
:main 'clojure.main
:main-args ["-m" "cognitect.test-runner"]})
{:keys [exit]} (b/process cmds)]
(when-not (zero? exit)
(throw (ex-info "Tests failed" {})))))
(so I have to use tools.deps.alpha/combine-aliases).
Is this expected? Should this be easier?