gpt4 book ai didi

maven-2 - 使用 Ivy、Maven 和 POM 的问题

转载 作者:行者123 更新时间:2023-12-04 06:43:51 24 4
gpt4 key购买 nike

我最近一直在为一个新项目寻找和玩 IVY。我知道在这个话题上有两个阵营,人们选择其中一个的原因有很多。这个问题不是重点。

我感兴趣的是,当我使用 IVY 说使用 Maven 2 存储库获取 Spring Frame 时,我得到了大量 Jar 文件,然后在找到正确版本时出现问题,我必须排除项目等。现在,如果我转向关闭 Poms 然后我只得到 spring 框架 jar 并且一切正常。

通过使用 POM 交付如此多的 Jar 文件是否有原因 - 如果您使用纯 Maven 解决方案,是否会出现这些相同数量的 Jar 文件?

@Pascal_Thivent
这是我的意思的更新。

这是我得到的输出:

[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: UNRESOLVED DEPENDENCIES ::
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: javax.ejb#ejb;3.0: not found
[ivy:retrieve] :: com.oracle#toplink-essentials;2.41: not found
[ivy:retrieve] :: com.oracle#oc4j;1.0: not found
[ivy:retrieve] :: jexcelapi#jxl;2.6.6: not found
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: FAILED DOWNLOADS ::
[ivy:retrieve] :: ^ see resolution messages for details ^ ::
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: javax.faces#jsf-api;1.1!jsf-api.jar
[ivy:retrieve] :: com.bea.wlplatform#commonj-twm;1.1!commonj-twm.jar
[ivy:retrieve] :: com.oracle.toplink#toplink;10.1.3!toplink.jar
[ivy:retrieve] :: com.sun.jdmk#jmxtools;1.2.1!jmxtools.jar
[ivy:retrieve] :: com.sun.jmx#jmxri;1.2.1!jmxri.jar
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::

这是我的 ivy.xml
    <dependencies>
<dependency org="jstl" name="jstl" rev="1.1.2"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1" >
<exclude org="com.sun.jdmk"/>
<exclude org="com.sun.jmx"/>
<exclude org="javax.jms"/>
</dependency>
<dependency org="commons-lang" name="commons-lang" rev="2.5">
<exclude org="com.sun.jdmk"/>
<exclude org="com.sun.jmx"/>
<exclude org="javax.jms"/>
</dependency>
<dependency org="org.springframework" name="spring" rev="2.5.6"/>
<dependency org="org.springframework" name="spring-webmvc" rev="2.5.6"/>

</dependencies>

这是我的 Ivy 设置
<ivysettings>
<settings defaultResolver="myChain" />
<resolvers>
<url name="com.springsource.repository.bundles.release">
<ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="com.springsource.repository.bundles.external">
<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>

<chain name="myChain">

<resolver ref="com.springsource.repository.bundles.release" />
<resolver ref="com.springsource.repository.bundles.external"/>
<ibiblio name="jboss" m2compatible="true" root="http://repository.jboss.org/maven2" checkconsistency="false"/>
<ibiblio name="libraries" m2compatible="true" checkconsistency="false"/>
<ibiblio name="ilibraries-mirror" m2compatible="true" root="http://mirrors.ibiblio.org/pub/mirrors/maven2/" checkconsistency="false"/>
<ibiblio name="sun" m2compatible="true" root="http://download.java.net/maven/2/" checkconsistency="false"/>
</chain>
</resolvers>

最佳答案

这有点在黑暗中拍摄(我不知道“关闭 POM”是什么意思)但我的猜测是你实际上得到了 transitive dependencies (这是简化的,但是,如果 A 依赖于 B 并且如果你声明对 A 的依赖,你也会得到 B)。

这是您在使用 Maven 依赖项及其元数据(POM)以及依赖项管理解决方案(如 Maven 或 Ivy)时获得的功能之一。这是 Maven 的默认行为,不能被禁用(有一个关于此的元问题, MNG-1977 )。与 Ivy ,it looks like it's possible ,例如:

<dependencies>  
<dependency org="org.hibernate" name="hibernate-core"
rev="3.3.1.GA" conf='..'
transitive="false" />
</dependencies>

这是你的意思吗?

也可以看看
  • 依赖机制介绍
  • Transitive Dependencies
  • Maven:完整引用
  • 3.4.4. Transitive Dependencies
  • 关于maven-2 - 使用 Ivy、Maven 和 POM 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923750/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com