I would like to set the ivy.default.ivy.user.dir to something other than the default ${user.home}/.ivy2
. I can do this on the command line with
ant -Divy.default.ivy.user.dir=${WORKSPACE}/IVYCACHE
. But, I would like to have it set without a command line arg. I have tried setting this property in my build.xml, my common.xml and my ivysettings.xml. The strange thing is, that it seems to set the default cache to this path, but the verbose output says that there is no default setting for user.dir, so it uses the ${user.home}/.ivy2
path.
Here is the output when I set the user.dir in my build.xml file. Strangely, it sets the default cache to the path I used for 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
Then later, it claims that user.dir is not set anywhere. 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
Here is my build.xml line:
<property name="ivy.default.ivy.user.dir" value="${basedir}/ivy2" />
I have tried adding this line to common/ivysettings.xml and common/common.xml with no luck.
The Ivy settings file: ivysettings. xml is used to configure resolution and deployment of artifacts using repositories in Artifactory. The Ivy modules file: ivy. xml is where the project's modules and dependencies are declared.
Ivy files are XML files, usually called ivy. xml, containing the description of the dependencies of a module, its published artifacts and its configurations.
Ivy is an Ant extension for managing external libraries during the development process, giving you a way of adding them to your classpath, bundling them into your application build, etc.
I added the exact line that you have specified in the sample build.xml
provided in the ivy binary download and could see the artifacts downloaded in ivy2
subfolder within the samples
folder.
...
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<property name="ivy.default.ivy.user.dir" value="${basedir}/ivy2" />
...
I am using ivy 2.2 and ant 1.8.2. Can you check if the same works for you?
[Edit]: From the docs,
Actually all ant properties are imported into ivy variables when the configuration is done (if you call ivy from ant). This means that if you define an ant property after the call to configure, it will not be available as an ivy variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With