我有一个问题,我已经在我们内部公司svn的ivy.xml中定义了依赖项.我能够在没有任何代理任务的情况下访问这个svn站点.虽然我的依赖项驻留在ibiblio上,但这是我们公司之外的东西,并且需要代理才能下载内容.我在这里使用常春藤时遇到问题.
我在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>
Run Code Online (Sandbox Code Playgroud)
以下是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>
.
.
.
Run Code Online (Sandbox Code Playgroud)
因此可以在这里看到获取ivy.xml,我不需要任何代理,因为它在我们自己的网络中,当我设置代理时无法访问.但另一方面,我也在使用ibiblio,它在我们的网络外部,仅适用于代理.所以在build.xml之上不适用于那种情况.有人可以在这帮忙.
获取ivy.xml时我不需要代理(好像我有代理,常春藤不能在网络中找到代理后面的常春藤文件),而我只需要在我的解析器转到公共网址时.
Mar*_*nor 15
据我所知,无法在ANT文件中设置代理设置.该文档指出您需要设置以下环境变量
export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
Run Code Online (Sandbox Code Playgroud)
这些是系统属性(与普通的ANT属性相对).
更新: 我的立场得到纠正.我看到你正在使用setproxy方法设置代理.我从来没用过它.设置系统参数一直对我有用,并且具有在构建文件之外的优势(例如,当我在家工作而没有代理时).
我不知道如何使用ANT代理机制排除本地主机.我所能建议的只是尝试直接配置JRE
http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/proxie_config.html
对于maven中心依赖项,您需要一个看起来像这样的解析器
<ibiblio name="maven2" m2compatible="true"/>
Run Code Online (Sandbox Code Playgroud)
这将自动转到Maven中心URL" http://repo1.maven.org/maven2 ".根据doco,这个解析器将使用Maven中的模块POM来确定瞬态依赖性.
最后一句警告.除非您在ivysettings文件中使用模块部分,否则请确保您的解析器在链解析器中声明,以便常春藤搜索每个模块的两个存储库
<chain name="defaultResolver" returnFirst="true">
<url name="privateFS">
<ivy pattern="http://xyz.svn.com/ivyRepository/ [organisation]/ivy/ivy.xml"/>
</url>
<ibiblio name="maven2" m2compatible="true"/>
</chain>
Run Code Online (Sandbox Code Playgroud)
Tom*_*ard 14
使用时setproxy,使用该nonproxyhosts属性指定不应使用代理的主机(管道分隔).例如,setproxy将示例中的任务修改为
<setproxy proxyhost="${proxy.host}"
proxyport="${proxy.port}"
nonproxyhosts="xyz.svn.com"/>
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅http://ant.apache.org/manual/Tasks/setproxy.html
| 归档时间: |
|
| 查看次数: |
28508 次 |
| 最近记录: |