为什么 JavaMoney 依赖包是 POM 包?

Why the JavaMoney dependency is packages as POM?

我对构建系统不是很有经验,但这让我很好奇。

大多数库使用 <type>jar</type>(默认)作为它们的依赖项,但 JavaMoney 库使用 pom,这是什么原因?

因为 JavaMoney 是多模块项目,并且该项目的根目录具有包装 pom。

当您在 pom.xml 中声明依赖项时,它将附加到具有传递依赖项的项目。这也适用于包装 pom 的工件。在这种情况下,传递依赖项将是 JavaMoney 的实现。

mvn dependency:tree
...
[INFO] +- org.javamoney:moneta:pom:1.3:compile
[INFO] |  +- org.javamoney.moneta:moneta-core:jar:1.3:compile
[INFO] |  +- org.javamoney.moneta:moneta-convert:jar:1.3:compile
[INFO] |  +- org.javamoney.moneta:moneta-convert-imf:jar:1.3:compile
[INFO] |  +- org.javamoney.moneta:moneta-convert-ecb:jar:1.3:compile
[INFO] |  +- javax.money:money-api:jar:1.0.3:compile
[INFO] |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile