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



我在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>

然后我有了这个ivy.xml文件,它与我的build.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>

但当我运行Ant目标时,所有东西都挂起了

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]

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

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

如果你的决心悬而未决,很可能是由于使用了网络代理。Ivy将尝试连接并最终超时。不幸的是,存在一个开放问题IVY-735,要求具有指定超时的能力。我不知道ivy默认要等多久。。。。。

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

我让"ant runtime"命令在后台等待,同时我正在研究为什么该命令似乎没有解析为下载URL,在等待的两三分钟内,包下载开始发生。

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

我意识到这个问题有点老了,但在安装了新的mac后,我今天遇到了一个ivy解决问题。在我的旧外壳配置文件中,我有:

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

当我在公司防火墙后面工作时(根据需要更改xyz-proxy8080)。

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

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

即,定义httpshttp代理内容(并再次根据需要更改xyz-proxy8080)。

宾果,现在一切都很好。

相关内容

  • 没有找到相关文章