我很难让Ivy与我的Jenkins项目合作。我的ivysettings.xml
文件的行:
<caches defaultCacheDir="C:/Users/me/.ivy2/cache"/>
适用于我的本地机器,但当我试图让我的Jenkins项目访问我上传本地项目的SVN存储库时就不行了。错误:
BUILD FAILED
/data/builds/jenkins/workspace/build.xml:132: impossible to configure ivy:settings with given file: /data/builds/jenkins/workspace/ivysettings.xml : java.text.ParseException: failed to load settings from file:/data/builds/jenkins/workspace/ivysettings.xml: defaultCacheDir must be absolute: C:/Users/me/.ivy2/cache
相反,我试图补救这种情况使用这个答案在我的jenkins工作区创建一个ivy缓存目录,放置
<properties environment="env" />
<caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
进入我的ivysettings.xml
文件,但后来我在Jenkins上遇到的问题开始发生在我的本地机器上,也给了我同样的消息:
BUILD FAILED...
...defaultCacheDir must be absolute: ${env.WORKSPACE}/.ivy2/cache
最简单的方法是根据ivysettings文件的位置配置缓存的位置,如下所示:
<ivysettings>
<settings defaultResolver="central"/>
<caches defaultCacheDir="${ivy.settings.dir}/cache"/>
<resolvers>
<ibiblio name="central" m2compatible="true"/>
</resolvers>
</ivysettings>
最简单的方法是在PC 上定义env变量WORKSPACE
setenv WORKSPACE=c:/users/me
更干净的方法是在PC和jenkins任务中定义类似IVY_CACHE_DIR
的env变量,并在ivysettings.xml
中使用它