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

当我尝试使用Ivy解决依赖关系时,我的Ant构建挂起

穆德海
2023-03-14

我在Mac 10.7.5上使用Ant 1.9,我刚刚安装了Ivy。我在下载依赖项时遇到了问题。我有这个build.xml文件和我的Ivy解析目标。

<project  xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="run">

    <target name="resolve" description="retrieve dependencies with ivy">
        <ivy:retrieve />
    </target>
    ...
    <target name="createSOAPClientJars" depends="resolve">
        <generateSOAPClientJar serviceName="bsexample"
                      wsdlPath="${bsexample.service.wsdl.url}"/>
    </target>

</project>

那么我有这棵常春藤。xml文件与我的构建版本处于同一级别。xml文件:

<ivy-module version="2.0">
   <info organisation="org.apache" module="hello-ivy"/>
    <dependencies>
            <dependency org="com.sun.xml.ws" name="jaxws-tools" rev="2.1.4"/>
    </dependencies>
</ivy-module>

但是当我运行我的蚂蚁目标时,一切都悬而未决

Daves-MacBook-Pro:antws davea$ ant createSOAPClientJars
Buildfile: /Users/davea/antws/build.xml

resolve:
[ivy:retrieve] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ ::
[ivy:retrieve] :: loading settings :: url = jar:file:/opt/apache-ant-1.9.0/lib/ivy-2.3.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:retrieve] :: resolving dependencies :: org.apache#hello-ivy;working@Daves-MacBook-Pro.local
[ivy:retrieve]  confs: [default]

为了解决依赖关系并启动我的目标,我还缺少什么?

共有3个答案

邬英武
2023-03-14

我知道这个问题有点老了,但是我今天在安装了一台新的mac电脑之后,遇到了一个常春藤解析的问题。在我以前的shell配置文件中,我有:

export ANT_OPTS="-Dhttp.proxyHost=xyz-proxy -Dhttp.proxyPort=8080"

当我在公司防火墙后工作时(根据需要更改xyz代理8080

试图了解ant挂在哪里(有用:ant-v test),它显然挂在尝试通过https下载工件上。所以,我现在使用:

export ANT_OPTS="-Dhttps.proxyHost=xyz-proxy -Dhttps.proxyPort=8080 -Dhttp.proxyHost=xyz-proxy -Dhttp.proxyPort=8080"

即定义 httpshttp 代理的东西(再次,根据需要更改 xyz 代理8080)。

答对了,现在一切正常。

翁钧
2023-03-14

我遇到了一个类似于Dave原始帖子中描述的问题。我检查了我的Internet连接以及ivysettings中列出的存储库URL。xml和一切看起来都很好。

我让“ant runtime”命令在后台等待,同时我正在研究为什么该命令似乎无法解析为下载URL,等待两三分钟后,程序包开始下载。

我不确定,但是当在maven存储库服务器上收到初始请求时,服务器端可能有某种默认的等待时间。

黄昊
2023-03-14

看起来您正在使用默认的ivy设置。这意味着ivy将尝试从Maven Central(最大的开源java软件存储库)下载工件。

如果你的决心悬而未决,很可能是因为使用了网络代理。Ivy将尝试连接并最终超时。不幸的是,有一个未解决的问题IVY-735需要指定超时的能力。不知道艾薇默认等多久.....

 类似资料:
  • 我正在将Apache Ivy与Eclipse(IvyDE)一起使用,并试图解决以下问题。我有两个项目,Ivy家长和IvyChild,其中孩子依赖于父级。我为Eclipse Ivy Classpath容器选择了“解决工作区中的依赖关系”的选项。 Eclipse autobuilder工作得很好——我下载并包含了我所有的Ivy依赖项。我打开了父项目和子项目,可以对父项目进行实时编辑,并查看子项目中的编

  • 我对ivy没有解析我的一些依赖关系有问题。以下是我如何重现这个问题的: 我在eclipse中有一个空的java项目。我已经在我的项目中添加了ivy.xml: 这工作正常,ivy能够解决和下载口水。 如果我将修订版更改为6.3.0.Final(http://mvnrepository.com/artifact/org.drools/drools-core/6.3.0.Final),它将不起作用,我看

  • 我正在使用intellij并遵循此文档: https://www.playframework.com/documentation/2.5.x/Migration25 我更改了插件。sbt如下: 然后它就卡住了: 我检查了这个存储库,没有2.5.3版本。 我做错了什么? 这是我的身材。sbt: 名称:="播放" 版本:="1.0" lazy val播放(文件中的项目(“.”)。enablePlugi

  • 我正在使用文件,告诉sbt 0.13.5从哪个存储库中检索。该文件仅包含和一个存储库,其自定义布局与标准sbt存储库非常相似,并表示和可选字段。 在解决项目的依赖关系时,我注意到了一些奇怪的行为: 解析精确的依赖关系很好 如您所见,请明确提及回购布局模式。 我很困惑,因为解析器可以很好地处理通配符依赖项以外的任何东西。我试着翻遍常春藤文档,想弄清楚某些解析器(比如我使用的解析器)是否没有实现某些类

  • 首先,很抱歉我不得不用伪代码来展示这个问题,因为原始库代码是封闭源代码,整个构建过程稍微复杂一点。 问题如下: 我们有一个项目a,它使用了一个内部库B。这个库使用了几个opensource库,我们现在称之为C和D。 出于调试的目的,我希望创建项目a的一个分级复合构建,其中包括使用的库B。 项目A:安置。梯度 项目A在其构建中包括库B。Gradle: 库B有C和D作为依赖项。D有自己的存储库,C在M

  • 我想下载使用ivy的工件:解决,但使用使用[conf]属性的模式。所以我在IvyS中定义了以下内容ettings.xml 注意这个模式 现在可以很好地解决依赖关系,但只为配置创建了一个文件夹:默认。没有为ConfGroup1创建文件夹 另外,我知道这可以通过使用ivy:retrieve实现,但我不想使用它,因为它将涉及将工件从ivy缓存复制到ivy:resolve之后的另一个地方,我有价值数十亿字