Настройка домашнего каталога ivy в Ant - PullRequest
7 голосов
/ 08 февраля 2011

Я хотел бы установить для ivy.default.ivy.user.dir значение, отличное от значения по умолчанию ${user.home}/.ivy2.Я могу сделать это в командной строке с помощью

ant -Divy.default.ivy.user.dir=${WORKSPACE}/IVYCACHE.Но я бы хотел установить его без командной строки arg.Я попытался установить это свойство в моем build.xml, моем common.xml и ivysettings.xml.Странно то, что он, похоже, устанавливает кэш по умолчанию для этого пути, но подробный вывод говорит, что для user.dir нет настройки по умолчанию, поэтому он использует путь ${user.home}/.ivy2.

Вот вывод, когда я установил user.dir в моем файле build.xml.Как ни странно, он устанавливает в кеше по умолчанию путь, который я использовал для user.dir

[ivy:buildlist] No ivy:settings found for the default reference 'ivy.instance'.  A default instance will be used
[ivy:buildlist] Loading jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivy.properties
[ivy:buildlist] searching settings file: trying /home/hudson/.hudson/jobs/Next_CI/workspace/ivysettings.xml
[ivy:buildlist] searching settings file: trying /home/hudson/.hudson/jobs/Next_CI/workspace/ivyconf.xml
[ivy:buildlist] searching settings file: trying ivysettings.xml
[ivy:buildlist] searching settings file: trying ivyconf.xml
[ivy:buildlist] no settings file found, using default...
[ivy:buildlist] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:buildlist] jakarta commons httpclient not found: using jdk url handling
[ivy:buildlist] :: loading settings :: url = jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:buildlist] including url: jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings-public.xml
[ivy:buildlist] no default cache defined: set to /home/hudson/.hudson/jobs/Next_CI/workspace/ivy2/cache
[ivy:buildlist] including url: jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings-shared.xml
[ivy:buildlist] including url: jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings-local.xml
[ivy:buildlist] including url: jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings-main-chain.xml
[ivy:buildlist] including url: jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings-default-chain.xml
[ivy:buildlist] settings loaded (71ms)
[ivy:buildlist]         default cache: /home/hudson/.hudson/jobs/Next_CI/workspace/ivy2/cache

Затем, позже, он утверждает, что user.dir нигде не установлен.resolve:

[ivy:resolve] Loading jar:file:/usr/local/ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivy.properties
[ivy:resolve] jakarta commons httpclient not found: using jdk url handling
[ivy:resolve] :: loading settings :: file = /home/hudson/.hudson/jobs/Next_CI/workspace/common/ivysettings.xml
[ivy:resolve] no default ivy user dir defined: set to /home/hudson/.ivy2

Вот моя строка build.xml:

<property name="ivy.default.ivy.user.dir" value="${basedir}/ivy2" />

Я безуспешно пытался добавить эту строку в common / ivysettings.xml и common / common.xml.

Ответы [ 2 ]

5 голосов
/ 09 февраля 2011

Я добавил точную строку, указанную вами в примере build.xml, представленном в бинарной загрузке ivy, и смог увидеть артефакты, загруженные в подпапку ivy2 в папке samples.

...
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<property name="ivy.default.ivy.user.dir" value="${basedir}/ivy2" />
...

Я использую ivy 2.2 и ant 1.8.2. Можете ли вы проверить, работает ли то же самое для вас?

[Изменить]: Из документов ,

На самом деле все свойства муравья импортируется в переменные плюща, когда настройка выполнена (если вы называете плющ от муравья). Это означает, что если вы определить свойство муравья после вызова настроить, он не будет доступен как переменная плюща.

3 голосов
/ 17 января 2013

Переменная окружения ANT_OPTS позволяет устанавливать параметры jvm.Таким образом, вы можете поместить в свой ANT_OPTS тот же аргумент командной строки, с которым вы вызываете скрипт оболочки 'ant'.Например, под m $ windoozer:

ANT_OPTS=-Divy.default.ivy.user.dir=C:/IVYCACHE
...