Почему зависимость JavaMoney - это пакеты как POM?
Я не очень разбираюсь в системах сборки, но это меня заинтересовало.
Большинство библиотек используют <type>jar</type>
(по умолчанию) для их зависимостей, но библиотека JavaMoney использует pom
вместо этого, в чем причина?
1 ответ
Решение
Причина. JavaMoney - это многомодульный проект, и в корне этого проекта есть пакет pom.
Когда вы объявляете зависимость в pom.xml, она будет привязана к проекту с их транзитивными зависимостями. Это также работает для артефактов с упаковкой пом. В этом случае переходными зависимостями будет реализация 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