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

欢迎!请查阅 关于 页面以获取更多有关如何使用此功能的信息。

0
Clojure CLI
已关闭

Clojure 版本 1.11.1.1267
操作系统: macOS 13.x

命令 clj -Spom 未能按预期工作,并生成的 pom.xml 文件中没有显示任何依赖。
标志 -X:deps list-X:deps tree 按预期工作,并且正确解决了 deps.edn 的依赖文件,但标志 -Spom 无法生成有效的 pom.xml 文件(它不包含任何依赖项)。
在以下仓库已测试:https://github.com/clojure/tools.deps

输出 clj -Spom && cat pom.xml (1.11.1.1267)

<?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>
  <packaging>jar</packaging>
  <groupId>tools.deps</groupId>
  <artifactId>tools.deps</artifactId>
  <version>0.1.0</version>
  <name>tools.deps</name>
  <dependencies/>
  <repositories/>
</project>

输出 clj -Spom && cat pom.xml (1.11.1.1165)

Skipping paths: src/main/resources
<?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>
  <packaging>jar</packaging>
  <groupId>tools.deps</groupId>
  <artifactId>tools.deps</artifactId>
  <version>0.1.0</version>
  <name>tools.deps</name>
  <dependencies>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>clojure</artifactId>
      <version>1.10.3</version>
    </dependency>
    <dependency>
      <groupId>com.cognitect.aws</groupId>
      <artifactId>api</artifactId>
      <version>0.8.612</version>
    </dependency>
    <dependency>
      <groupId>com.cognitect.aws</groupId>
      <artifactId>endpoints</artifactId>
      <version>1.1.12.321</version>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>tools.cli</artifactId>
      <version>1.0.214</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-transport-http</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-transport-file</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.11.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-core</artifactId>
      <version>3.8.6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-api</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-resolver-provider</artifactId>
      <version>3.8.6</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>31.1-android</version>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>data.xml</artifactId>
      <version>0.2.0-alpha8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-spi</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>tools.gitlibs</artifactId>
      <version>2.5.190</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-connector-basic</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>com.cognitect.aws</groupId>
      <artifactId>s3</artifactId>
      <version>822.2.1145.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-impl</artifactId>
      <version>1.8.2</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.resolver</groupId>
      <artifactId>maven-resolver-util</artifactId>
      <version>1.8.2</version>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src/main/clojure</sourceDirectory>
  </build>
  <repositories>
    <repository>
      <id>clojars</id>
      <url>https://repo.clojars.org/</url>
    </repository>
  </repositories>
</project>

因此,1.11.1.1165 的输出是预期的输出,但 1.11.1.1267 的行为不同。命令 clj -X:deps pom 也不工作。

这是否是 1.11.1.1267 中的程序错误或合法行为?我该如何从 deps.edn 生成包含所有依赖项的有效 pom.xml 文件?

备注:已关闭,已修复于 Clojure CLI 1.11.1.1273

1 个答案

0

很有趣,这一定是在最近出的问题,我会查看一下。不过,实际上,你可以使用 clj -X:deps mvn-pom 代替。-Spom 可能最终会被移除。

by
嗨 Alex,

感谢你的回复。我可以确认 `clj -X:deps mvn-pom` 在 `1.11.1.1267` 中工作正常,但它未列在 `clj --help` 中。根据一些快速测试,`-Spom` 停止工作的 `clj` 第一个版本应该是 `1.11.1.1252`(3月6日)。
by
我已经修复了下一个版本中的帮助和回归问题。
...