2024年Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面以获取更多关于该页功能的信息。

0
tools.deps

提供:git/url../../../../../../../../tmp/foobar(其中/tmp/foobar是在系统上的git仓库)将导致

`
构建类路径时出错。无法将org.eclipse.jgit.transport.TransportLocal转换为org.eclipse.jgit.transport.SshTransport
java.lang.ClassCastException: org.eclipse.jgit.transport.TransportLocal cannot be cast to org.eclipse.jgit.transport.SshTransport

at clojure.tools.gitlibs.impl$fn$reify__829.configure(impl.clj:32)
at org.eclipse.jgit.api.TransportCommand.configure(TransportCommand.java:155)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:235)
at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306)
at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:200)
at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:89)
at clojure.tools.gitlibs.impl$call_with_auth.invokeStatic(impl.clj:49)
at clojure.tools.gitlibs.impl$call_with_auth.invoke(impl.clj:41)
at clojure.tools.gitlibs.impl$git_clone_bare.invokeStatic(impl.clj:71)
at clojure.tools.gitlibs.impl$git_clone_bare.invoke(impl.clj:68)
at clojure.tools.gitlibs.impl$ensure_git_dir.invokeStatic(impl.clj:110)
at clojure.tools.gitlibs.impl$ensure_git_dir.invoke(impl.clj:100)
at clojure.tools.gitlibs$resolve.invokeStatic(gitlibs.clj:33)
at clojure.tools.gitlibs$resolve.invoke(gitlibs.clj:29)
at clojure.tools.gitlibs$procure.invokeStatic(gitlibs.clj:47)
at clojure.tools.gitlibs$procure.invoke(gitlibs.clj:41)
at clojure.tools.deps.alpha.extensions.git$eval894$fn__896.invoke(git.clj:41)
at clojure.lang.MultiFn.invoke(MultiFn.java:238)
at clojure.tools.deps.alpha$expand_deps.invokeStatic(alpha.clj:168)
at clojure.tools.deps.alpha$expand_deps.invoke(alpha.clj:152)
at clojure.tools.deps.alpha$resolve_deps.invokeStatic(alpha.clj:215)
at clojure.tools.deps.alpha$resolve_deps.invoke(alpha.clj:197)
at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invokeStatic(make_classpath.clj:59)
at clojure.tools.deps.alpha.script.make_classpath$create_classpath.invoke(make_classpath.clj:52)
at clojure.tools.deps.alpha.script.make_classpath$run.invokeStatic(make_classpath.clj:70)
at clojure.tools.deps.alpha.script.make_classpath$run.invoke(make_classpath.clj:64)
at clojure.tools.deps.alpha.script.make_classpath$_main.invokeStatic(make_classpath.clj:109)
at clojure.tools.deps.alpha.script.make_classpath$_main.doInvoke(make_classpath.clj:84)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.core$apply.invokeStatic(core.clj:657)
at clojure.main$main_opt.invokeStatic(main.clj:317)
at clojure.main$main_opt.invoke(main.clj:313)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)

`

Gitlibs应处理本地仓库。

4 个答案

0

由:netpyoung 评论

目前,tools.gitlib不支持file:// url。

`
(defn- call-with-auth
([^GitCommand command]

(call-with-auth
  (.. command getRepository getConfig (getString "remote" "origin" "url"))
  command))

([^String url ^GitCommand command]
(cond

 ;; need to filtering like that.
 (and (instance? TransportCommand command)
      (str/starts-with? url "file"))
 (.call command)
 (and (instance? TransportCommand command)
      (not (str/starts-with? url "http")))
 (.. ^TransportCommand command (setTransportConfigCallback @ssh-callback) call)

:else (.call command))))
`

0
评论由:alexmiller 制作

使用本地Git仓库而不是本地依赖的价值在哪里?即


clj -Sdeps '{:deps {my/local {:local/root “../../../../../../../../tmp/foobar”}}}'
0

评论由:ajcummings 制作

我认为使用本地Git仓库有价值,至少在我的
设置。

我们在工作场所并没有运行Git服务器;相反,我们
NFS中的仓库。转向
tools.deps
的动机之一是我可以直接从这些
Git仓库获取依赖项,而不是通过我们的Maven仓库(这也

简单地托管在NFS上)清洗。
考虑到这种配置,我希望能够直接从文件系统中的Git
获取,包括对标签和历史洞察,以便能够启用
-Sresolve-tags,deps-ancient等。使用git clone/checkout
并将那里指向:local/root不提供这种功能,也不支持通过:

:sha选择版本。
我尝试过的一个解决方案是通过ssh将连接清洗到另一个
也是挂载NFS的机器。但由于与我IT环境相关的
原因,我不愿意将其用于我的团队。因此,我们现在继续通过
我们内部Maven仓库进行部署。

0
参考: https://clojure.atlassian.net/browse/TDEPS-93(由severeoverfl0w报告)
...