请分享您的想法,参加 2024 年 Clojure 调查问卷!

欢迎!有关如何使用本站的更多信息,请参阅 关于 页面。

0
tools.deps
当解析 {{:git/url}} 依赖项时,使用 {{:deps/manifest :pom}},{{:paths}} 的结果向量是一个列表,其中第一个条目由依赖项的 pom 的 {{sourceDirectory}} 组成。由于 {{sourceDirectory}} 相对(可能)于依赖项,因此这个路径不存在,但它在依赖于项目的当前目录中被转换为绝对路径。

以下是使用 [{{coord-paths}}|https://github.com/clojure/tools.deps.alpha/blob/433965a532e9f2433edcb42d783d5e20f69cd01a/src/main/clojure/clojure/tools/deps/alpha/extensions/pom.clj#L99] 的示例用法,以便更清楚地了解
{code:none}
user=>(coord-paths 'some/dependency
                       {:deps/root "/Users/user/.gitlibs/libs/some/dependency/hash" :deps/manifest :pom}
                       :pom
                       {:mvn/repos {"central" {:url "https://repo1.maven.org/maven2/"}
                                    "clojars" {:url "https://clojars.org/repo/"}}})

("/path/to/dependent/project/${project.basedir}/src/main/java"
 "/Users/user/.gitlibs/libs/some/dependency/hash/src/main/clojure")


这里 {{$\{project.basedir\}/src/main/java}} 是默认值,在 pom.xml 中没有指定 {{sourceDirectory}} 时使用。
很明显,这个路径,它得以进入类路径,是无效的。如果 pom.xml 中存在(相对)路径,列表的第一个条目可以像 {{"/path/to/dependent/project/src/main/clojure"}} 这样的路径,可能存在,但不是依赖项源代码的路径。

请注意,{{coord-paths}} 的输出是一个序列,而不是向量。

1 答案

0
参考: https://clojure.atlassian.net/browse/TDEPS-96(由alex+import报告)
...