2024年Clojure状态调查中分享你的想法!

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

0
tools.deps
重标记

我关于clj -Spom命令背后的逻辑有一些问题

  • 为什么在顶层添加一个sourceDirectory标签?这似乎是一个无效的标签,mvn validate会提示无法识别标签的错误。

  • 每次我重新运行clj -Spom都会创建一个新的sourceDirectory标签,添加重复的值,这是故意的吗?

  • 为什么只使用:src中的第一个元素来填充sourceDirectory,其余的都忽略了?

1 答案

0

我无法重现你所看到的情况 - 它应该在<project>/<build>/<sourceDirectory>处添加。你可能需要确认你正在使用最新的clj版本(目前是1.10.1.536)。如果你仍然看到这种行为,请提供你的clj版本(clj -Sdescribe)、java版本(java -version)以及一个deps.edn以进行重现。

关于你最后的问题,pom中只有一个槽位用于单一路径。有各种插件和配置设置可以解决这个问题,但你做什么在很大程度上取决于你正在做什么。在这里不做选择的话,-Spom将仅跳过第一个之后的目录。如果你指定其他构建配置,它应保持完整。

感谢你的回答 @alexmiller

为了重现我在第一和第二点中描述的情况,在只有一个 `pom.xml` 文件但没有任何 `<project>/<build>/<sourceDirectory>` 目录的目录中运行 `clj -Spom`,例如:

```
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>foo</artifactId>
  <version>0.1.0</version>
  <name>foo</name>
</project>
```

我在目录中只有 `pom.xml` 文件,没有其他文件。
现在每次你运行 `clj -Spom`,都会添加一个新的 `<project>/<sourceDirectory>` 标签。

我用最新的 clj 版本进行了测试

clj -Sdescribe

```
{:version "1.10.1.536"
 :config-files ["/nix/store/9fqcvxrqayhhn1b87ys7lwnlqdv2ja5x-clojure-1.10.1.536/deps.edn" "/home/jlle/.clojure/deps.edn" ]
 :config-user "/home/jlle/.clojure/deps.edn"
 :config-project "deps.edn"
 :install-dir "/nix/store/9fqcvxrqayhhn1b87ys7lwnlqdv2ja5x-clojure-1.10.1.536"
 :config-dir "/home/jlle/.clojure"
 :cache-dir "/home/jlle/.clojure/.cpcache"
 :force false
 :repro false
 :resolve-aliases ""
 :classpath-aliases ""
 :jvm-aliases ""
 :main-aliases ""
 :all-aliases ""}
```


java -version

```
openjdk version "11.0.6-internal" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6-internal+0-adhoc..jdk11u-jdk-11.0.6-ga)
OpenJDK 64-Bit Server VM (build 11.0.6-internal+0-adhoc..jdk11u-jdk-11.0.6-ga, mixed mode)
```

我没有提供 `deps.edn` 文件,因为我可以在没有任何文件的情况下复现这个问题。
谢谢,这很有帮助。已经记录为 https://clojure.atlassian.net/browse/TDEPS-152,我会尽快处理。
...