当前位置: 首页 > 知识库问答 >
问题:

如何修复Apache Ivy中被驱逐的模块问题

滕夜洛
2023-03-14

我试图将Apache Ivy与现有的使用Apache Ant的Java EE项目集成在一起。我创建了ivy.xml、ivysettings.xml(在mvnrepo中添加一个不存在的repo)并对现有的build.xml进行了更改。

当我运行常春藤决议时,我得到了以下内容:

[ivy:resolve] :: resolution report :: resolve 2642ms :: artifacts dl 49ms
[ivy:resolve]   :: evicted modules:
[ivy:resolve]   xml-apis#xml-apis;1.0.b2 by [xml-apis#xml-apis;1.3.04] in [default]
[ivy:resolve]   commons-logging#commons-logging;1.1.1 by [commons-logging#commons-logging;1.2] in [default]
[ivy:resolve]   commons-codec#commons-codec;1.6 by [commons-codec#commons-codec;1.8] in [default]
[ivy:resolve]   commons-logging#commons-logging;1.1.3 by [commons-logging#commons-logging;1.2] in [default]
[ivy:resolve]   org.slf4j#slf4j-api;1.6.1 by [org.slf4j#slf4j-api;1.7.7] in [default]
[ivy:resolve]   xml-apis#xml-apis;1.3.04 by [xml-apis#xml-apis;1.4.01] in [default]
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |  108  |   0   |   0   |   6   ||  102  |   0   |
    ---------------------------------------------------------------------

如何解决此问题?这些模块在常春藤.xml中没有直接提及。这是我对常春藤的第一次实验,任何帮助将不胜感激。

<ivysettings>
    <settings defaultResolver="central"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
        <ibiblio name="primefaces-themes-old" m2compatible="true" root="http://repository.primefaces.org"/>
    </resolvers>
    <modules>
        <module organisation="org.primefaces.themes" resolver="primefaces-themes-old"/>
    </modules>
</ivysettings>
<?xml version="1.0" encoding="ISO-8859-1"?>
<ivy-module version="2.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="Fetching Life" module="WebApp" status="integration">
    </info>
    <dependencies>
        <dependency org="commons-collections" name="commons-collections" rev="3.2.2" conf="default"/>
        <dependency org="mysql" name="mysql-connector-java" rev="5.1.40" conf="default"/>
        <dependency org="com.googlecode.flyway" name="flyway-core" rev="2.3.1" conf="default"/>
        <dependency org="com.googlecode.flyway" name="flyway-ant" rev="2.3.1" conf="default"/>
        <dependency org="org.hibernate" name="hibernate-core" rev="5.0.11.Final" conf="default"/>
        <dependency org="org.springframework" name="spring-core" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-web" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-orm" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-context" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-context-support" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-test" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-oxm" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-webmvc" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-webmvc-portlet" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.springframework" name="spring-aspects" rev="4.2.8.RELEASE" conf="default"/>
        <dependency org="org.primefaces" name="primefaces" rev="5.1" conf="default"/>
        <dependency org="com.sun.faces" name="jsf-api" rev="2.1.29" conf="default"/>
        <dependency org="com.sun.faces" name="jsf-impl" rev="2.1.29" conf="default"/>
        <dependency org="joda-time" name="joda-time" rev="2.8.2" conf="default"/>
        <dependency org="org.apache.shiro" name="shiro-all" rev="1.2.6" conf="default"/>
        <dependency org="com.google.apis" name="google-api-services-calendar" rev="v3-rev179-1.19.1" conf="default"/>
        <dependency org="com.google.code.gson" name="gson" rev="2.3.1" conf="default"/>
        <dependency org="org.mnode.ical4j" name="ical4j" rev="1.0.7" conf="default"/>
        <dependency org="net.sourceforge.jexcelapi" name="jxl" rev="2.6.12" conf="default"/>
        <dependency org="javax.el" name="javax.el-api" rev="2.2.5" conf="default"/>
        <dependency org="com.ocpsoft" name="prettyfaces-jsf2" rev="3.3.3" conf="default"/>
        <dependency org="org.mindrot" name="jbcrypt" rev="0.3m" conf="default"/>
        <dependency org="javax.jdo" name="jdo-api" rev="3.0.1" conf="default"/>
        <dependency org="org.quartz-scheduler" name="quartz" rev="2.2.3" conf="default"/>
        <dependency org="org.omnifaces" name="omnifaces" rev="1.6.3" conf="default"/>
        <dependency org="javax.servlet.jsp.jstl" name="jstl-api" rev="1.2" conf="default"/>
        <dependency org="antlr" name="antlr" rev="2.7.7" conf="default"/>
        <dependency org="org.apache.james" name="apache-mime4j" rev="0.6.1" conf="default"/>
        <dependency org="org.atmosphere" name="atmosphere-runtime" rev="2.2.9" conf="default"/>
        <dependency org="bsh" name="bsh" rev="1.3.0" conf="default"/>
        <dependency org="junit" name="junit" rev="4.12" conf="default"/>
        <dependency org="org.mockito" name="mockito-all" rev="1.10.19" conf="default"/>
        <dependency org="commons-fileupload" name="commons-fileupload" rev="1.2.2" conf="default"/>
        <dependency org="org.apache.commons" name="commons-exec" rev="1.3" conf="default"/>
        <dependency org="commons-io" name="commons-io" rev="2.4" conf="default"/>
        <dependency org="commons-jxpath" name="commons-jxpath" rev="1.3" conf="default"/>
        <dependency org="net.sf.ehcache" name="ehcache" rev="2.10.0" conf="default"/>
        <dependency org="org.glassfish.web" name="el-impl" rev="2.2" conf="default"/>
        <dependency org="net.sf.jsr107cache" name="jsr107cache" rev="1.1" conf="default"/>
        <dependency org="javax.mail" name="mail" rev="1.4.7" conf="default"/>
        <dependency org="io.netty" name="netty" rev="3.5.13.Final" conf="default"/>
        <dependency org="org.objenesis" name="objenesis" rev="2.1" conf="default"/>
        <dependency org="com.google.protobuf" name="protobuf-java" rev="2.4.1" conf="default"/>
        <dependency org="xalan" name="serializer" rev="2.7.2" conf="default"/>
        <dependency org="xalan" name="xalan" rev="2.7.2" conf="default"/>
        <dependency org="xerces" name="xercesImpl" rev="2.11.0" conf="default"/>
        <dependency org="org.primefaces.themes" name="casablanca" rev="1.0.10" conf="default"/>
        <dependency org="net.sourceforge.cssparser" name="cssparser" rev="0.9.20" conf="default"/>
        <dependency org="dom4j" name="dom4j" rev="1.6.1" conf="default"/>
        <dependency org="org.ini4j" name="ini4j" rev="0.5.4" conf="default"/>
        <dependency org="org.eclipse.jetty" name="jetty-websocket" rev="8.1.22.v20160922" conf="default"/>
        <dependency org="org.w3c.css" name="sac" rev="1.3" conf="default"/>
    </dependencies>
</ivy-module>
<project name="SampleApp" default="usage" basedir="." xmlns:flyway="antlib:com.googlecode.flyway.ant" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="lib.dir" value="${basedir}/${web.dir}/WEB-INF/lib/"></property>
<target name="resolve" description="resolve dependencies with ivy">
        <ivy:resolve conf="default"/>
    </target>

    <target name="cleancache" description="Purge ivy cache">
        <ivy:cleancache/>
    </target>

    <target name="dependencytree" depends="resolve" description="Show dependency tree">
        <ivy:dependencytree />
    </target>

    <target name="retrieve" depends="resolve" description="Resolve and Retrieve with ivy">
        <ivy:retrieve conf="default" sync="true" type="jar,bundle" pattern="${lib.dir}[artifact]-[revision].[ext]"/>
        <!-- <ivy:cachepath pathid="default.classpath" /> -->
    </target>
</project>

共有2个答案

任繁
2023-03-14

只是为了添加一些东西。

冲突部分工作得很好。

<conflict manager="all"/>

无论如何,要找到有关它的信息并不容易,知道它的使用可以限制为单个依赖项,或者还可以使用通配符来选择其中的一个子集,这可能很有用。就我而言,我是这样使用的:

<conflict manager="all" module="module_1" org="org_1"/>

此外,还可以选择使用不同经理的不同策略,更多信息请访问:http://ant.apache.org/ivy/history/2.0.0/settings/conflict-managers.html

闻人嘉木
2023-03-14

如果添加该行

    <conflict manager="all"/>
</dependencies>

从这里引用内置冲突管理器的全部内容:

该冲突管理器通过选择所有修订来解决冲突。也称为NoConflictManager,它不驱逐任何模块。

我不得不把冲突放在最后,否则它就行不通了。看起来像常春藤中的一只虫子。

只要确定这是你想要的。从这里引用:

在冲突解决过程中有两件事情得到了优化:工件下载和常春藤文件下载。第一个总是由常春藤保证的,即被收回的模块的工件永远不会被下载。第二种方法处理起来并不简单,因为要知道冲突是什么,ivy需要知道依赖关系图,要知道依赖关系,它必须下载ivy文件。但常春藤在这方面也进行了高度优化,它试图尽快淘汰模块。这就是为什么依赖关系的顺序对于下载优化很重要的原因。实际上,ivy会按照在ivy文件中声明依赖项的顺序遍历依赖关系图,每次遇到模块上的依赖项时,它都会首先检查此模块上是否存在冲突,如果是这样,它会要求冲突管理器解决冲突。然后,如果模块被收回,它不会下载其ivy文件,也不会遍历整个分支,这可以节省大量时间。

 类似资料:
  • 重复类android。支持v4。应用程序。在模块类中找到INotificationSideChannel。jar(androidx.core:core:1.1.0)和类。jar(com.android.support:support-v4:23.4.0)

  • 我收到这个错误,说SSL验证失败。 我已经试过了: 所以我发现了这个问题,如何创建Python安全websocket客户端请求?并使用此代码执行步骤 但随后发生NameError: 我试着添加了一个例外(这很可笑,但还是...)这导致了SyntaxError。 其他作用域 我尝试了使用wss://的不同websocket API,但在第一段代码中工作得很好。 条件: 我在websockets.or

  • 因此,当我试图通过另一个类MainFX运行gui时,我遇到了一些错误(我将尝试解决这些错误,但这并不是这个问题的意义所在): 正是在这一点上,我尝试添加一个module-info.java,并解决了IntelliJ捕获的所有导入依赖项,添加了一些模块依赖项: 所以我的module-info.java不能编译,如果没有module-info.java文件,我就不能运行JavaFX,这可能在没有mod

  • 我正在构建一个java应用程序,但每次我想导出到jar文件的终端显示此错误,我的jar文件是不可执行的。但是,如果我运行VS代码,它不会显示任何错误。这是我得到的错误,当我要导出到jar文件 在我的发布会上。json{} } 如果我在src文件中创建module-info.java,则会出现错误 javafx.controls不能解析为模块

  • 问题内容: 我在装有Ubuntu OS的计算机上安装了Docker。在安装docker之后,当我运行时 没关系,但是我想隐藏单词以使命令更短。 如果我写的命令没有这个词 显示以下内容: 当我尝试制作时也是如此 我该如何解决? 问题答案: 如果要以非root用户身份运行docker,则需要将其添加到docker组。 创建docker组(如果不存在) $ sudo groupadd docker 将您

  • 一切正常,但我想隐藏单词以使命令更简短。 如果我在编写命令时没有单词 显示以下内容: Docker:尝试连接到unix上得Docker后台程序套接字时获得得权限被拒绝:///var/run/Docker.sock:Post http://%2fvar%2frun%2fdocker.sock/v1.35/containers/create:拨号unix/var/run/Docker.sock:con