2011-02-08 31 views
7

Me gustaría establecer el ivy.default.ivy.user.dir en algo distinto al predeterminado ${user.home}/.ivy2. Puedo hacer esto en la línea de comando conConfiguración del directorio de inicio de ivy en Ant

ant -Divy.default.ivy.user.dir=${WORKSPACE}/IVYCACHE. Pero me gustaría tenerlo configurado sin una línea de comando arg. Intenté configurar esta propiedad en mi build.xml, mi common.xml y mi ivysettings.xml. Lo extraño es que parece establecer el caché predeterminado en esta ruta, pero la salida detallada dice que no hay una configuración predeterminada para user.dir, por lo que usa la ruta ${user.home}/.ivy2.

Aquí está la salida cuando configuro el archivo user.dir en mi archivo build.xml. Extrañamente, se establece el caché por defecto a la ruta que he usado para 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 

Luego, más tarde, alega que user.dir no se establece ninguna parte. resolución:

 
[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 

Aquí está mi línea build.xml:

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

He intentado agregar esta línea al común/ivysettings.xml y comunes/common.xml sin suerte.

+0

Creo que esta pregunta ha sido respondida? Lo has preguntado dos veces ... Ver http://stackoverflow.com/questions/5019550/can-i-turn-off-the-ivy-cache-all-together/5023172#5023172 –

Respuesta

5

he añadido la línea exacta que ha especificado en el muestrabuild.xml proporcionada en el binario descarga hiedra y podía ver los objetos descargados en ivy2 subcarpeta dentro de la carpeta samples.

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

estoy usando la hiedra 2.2 y 1.8.2 de hormigas. ¿Puedes verificar si lo mismo funciona para ti?

[Editar]: Desde el docs,

En realidad todas las propiedades de hormigas son importado en las variables de hiedra, cuando se realiza la configuración (si se llama a la hiedra de hormiga). Esto significa que si define una propiedad ant después de la llamada para configurar, no estará disponible como una variable de hiedra.

+0

Estamos ejecutando ivy 2.2 y hormiga 1.8.1. No estoy seguro de lo que quieres decir con probar la línea. Lo puse en mi archivo build.xml de nivel superior y no funciona. Tal vez esto es un error en 1.8.1. Voy a tratar de actualizar hormiga. – user561638

+0

intenté con la versión 1.8.2 y todavía no veo ningún directorio de usuario predeterminado en la salida y no coloca las cosas donde yo quiero. – user561638

+0

Probé lo que sugirió utilizando el archivo build.xml de ejemplo y, por supuesto, funciona. Entonces, ¿alguien puede darme una pista sobre por qué falla en mi build.xml? – user561638

3

La variable de entorno ANT_OPTS permite establecer los parámetros de jvm. Por lo tanto, puede poner en su ANT_OPTS el mismo argumento de línea de comando con el que invoca el script de shell 'ant'. P.ej. en m $ windoozer:

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