2013-04-29 101 views
1

我有一個ant/ivy項目,我也在Eclipse中使用。問題是在eclipse中,ivyde正在抱怨我的ivysettings.xml中的FileResolver,聲稱路徑必須是絕對路徑。我相信,其原因是它沒有評估環境變量。FileResolver,環境變量和ivyde

以下是我的ivysettings.xml文件,ivyde無法解析由於這種絕對路徑要求:

<ivysettings> 
    <properties environment="env"/> 
    <properties file="./ivysettings.properties"/> 
    <settings defaultResolver="chain"/> 
    <resolvers> 
    <filesystem name="local"> 
     <ivy pattern="${repository.dir}/[module]/ivy.xml" /> 
     <artifact pattern="${repository.dir}/[module]/[artifact].[ext]" /> 
    </filesystem> 
    <chain name="chain"> 
     <resolver ref="local"/> 
     <ibiblio name="maven2" m2compatible="true"/> 
    </chain> 
    </resolvers> 
    <modules> 
    <module organisation="org.example" resolver="local"/> 
    </modules> 
</ivysettings> 

ivysettings.properties包含:

repository.dir=${env.githome}/metademo/ivy_build/repository 

螞蟻很高興與此,但ivyde似乎沒有解決{$ env.githome}。我需要一些方法來針對不同開發人員環境的FileSystem解析器執行此「絕對路徑」要求......所以使用環境變量來引用它。我如何讓ivyde認識到這一點?

回答

1

爲了使配置能夠在Ant或Eclipse等不同環境下工作,它應該獨立於任何外部變量。 ivysettings.xml文件和屬性文件應該足以解析任何路徑。

在這裏,您已經通過Ant設置了env.*屬性。您最好讓艾薇用properties及其environment屬性自己做。

cf http://ant.apache.org/ivy/history/latest-milestone/settings/properties.html

+0

感謝您回答尼古拉斯。我很困惑,但是你的聲明說我使用ant來設置env。*屬性。這些屬性被加載到ivysettings.xml中,其中ant ivy:settings目標將加載,或者ivyde將加載。 – ticktock 2013-04-29 22:59:38

+1

我沒有完整的上下文,但我想你的構建中的某個地方有''。所以當Ivy在Ant中運行時,它可以看到Ant屬性,它可以正確解析'env.githome'。因此我建議在Ivy內部而不是Ant內部設置env。*'屬性設置。 – 2013-04-30 19:09:41

+1

我的其他問題是得到eclipse(作爲應用程序)來查看環境變量.. mac開發人員:launchctl setenv ticktock 2013-05-01 17:22:54