我遇到了一个问题,我在ivy.xml中对我们公司内部的svn定义了依赖项。我能够在ant中没有代理任务的情况下访问此svn站点。虽然我的依赖关系驻留在ibiblio上,但那是公司外部的,需要代理才能下载东西。我在这里使用ivy时遇到了问题。
我在build.xml中有以下内容
<target name="proxy">
<property name="proxy.host" value="xyz.proxy.net"/>
<property name="proxy.port" value="8443"/>
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
</target>
<!-- resolve the dependencies of stratus -->
<target name="resolveTestDependency" depends="testResolve, proxy" description="retrieve test dependencies with ivy">
<ivy:settings file="stratus-ivysettings.xml" />
<ivy:retrieve conf="test" pattern="${jars}/[artifact]-[revision].[ext]"/><!--pattern here specifies where do you want to download lib to?-->
</target>
<target name=" testResolve ">
<ivy:settings file="stratus-ivysettings.xml" />
<ivy:resolve conf="test" file="stratus-ivy.xml"/>
</target>
以下是从 stratus-ivysettings.xml 中摘录的内容
<resolvers>
<!-- here you define your file in private machine not on the repo (e.g. jPricer.jar or edgApi.jar)-->
<!-- This we will use a url nd not local file system.. -->
<url name="privateFS">
<ivy pattern="http://xyz.svn.com/ivyRepository/ [organisation]/ivy/ivy.xml"/>
</url>
.
.
.
<url name="public" m2compatible="true">
<artifact pattern="http://www.ibiblio.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</url>
.
.
.
从这里可以看出,为了获取ivy.xml文件,我不需要任何代理,因为它位于我们自己的网络中,当我设置代理时无法访问。但另一方面,我也在使用外部的ibiblio,只能通过代理工作。所以上述build.xml在这种情况下将无法工作。有人能帮忙吗。
在获取ivy.xml文件时,我不需要代理(如果我使用代理,ivy无法从网络内部的代理后面找到ivy文件),只有当我的解析器前往公共URL时才需要代理。