2011-12-05 106 views
0

我想使用依賴於螞蟻類路徑的解析器(ssh)。動態修改螞蟻類路徑

喜歡的東西

<resolvers> 
... 
<ssh ... 
... 
</resolvers> 

要使用它,我需要在類路徑螞蟻jsch。 Ant腳本應該僅依賴於常見的lib(其中還包括已解析的jsch依賴關係) - 可以在任何客戶端PC上使用它。方案是:

  1. 任務下載lib。
  2. 提取物庫(jsch等)
  3. 常春藤:配置

但常春藤:配置沒有任何classpathref PARAM,所以目前還不清楚我怎麼裝罐子我提取。

可能嗎?

或者,可能以某種方式再次運行內部擴展類路徑螞蟻?

+0

好吧, 看起來我找到了解決方案(恥辱對我來說 - rtfm有時是很好的答案): ivysettings接受頂層與解析器的文件或網址。 不幸的是,它不接受refid或建設路徑。我發現問題在常春藤傑拉https://issues.apache.org/jira/browse/IVY-531看起來像解決了一些補丁bu仍然打開。並且refid對ivy-2.2不起作用 – Evgeny

+0

您可以並且應該發佈您的解決方案作爲對此問題的答案(您可以稍後再接受)。 – oers

回答

0

好吧, 所以我的問題評論看起來不錯,但最終沒有奏效。

我發現的唯一方法(我的意思是工作方式)是與

  1. 下載共LIB(帶),其中包括用於可選的常春藤處理所需的所有jar-庫運行Ant腳本
  2. 構建新的類路徑和運行高管與要求的目標相同的構建文件:

    <target name="call.task" if="wrapped.task.name"> 
    <path id="ant.class.path"> 
        <fileset dir="${tools.lib.dir}" > 
         <include name="*.jar" /> 
        </fileset> 
        <pathelement location="${java.class.path}" /> 
    </path> 
    
    <condition property="append.dest.dir" value="-Ddest.dir=${dest.dir}" else=""> 
        <isset property="dest.dir"/> 
    </condition> 
    
    <exec executable="ant" failonerror="true"> 
        <arg line="-f ivy-build.xml" /> 
        <arg line='-lib "${toString:ant.class.path}"' /> 
        <arg value="${wrapped.task.name}" /> 
        <arg value="${append.dest.dir}" /> 
    </exec> 
    </target>