Use custom IVY cache directories to allow for concurrent builds
...otherwise IVY would fail to resolve artifacts when run
concurrently (such as on CI server).
--- a/java/build.common.xml Tue Aug 01 10:40:52 2017 +0100
+++ b/java/build.common.xml Tue Aug 01 10:42:53 2017 +0100
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project xmlns:ivy="antlib:org.apache.ivy.ant">
+<project xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="ivy.jar" value="${TOP}/libjava/java/ivy-2.4.0.jar"/>
+ <property name="ivy.settings.xml" value="${TOP}/libjava/java/ivy-settings.xml"/>
<property name="build.src.dir" value="src"/>
<property name="build.bin.dir" value="bin"/>
@@ -36,6 +37,10 @@
<pathelement path="${build.bin-tests.dir}"/>
</path>
+ <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar}" />
+ <ivy:settings file="${ivy.settings.xml}"/>
+
+
<target name="build" depends="compile"/>
@@ -66,8 +71,7 @@
<target name="libs.main">
<mkdir dir="${build.libs.dir}"/>
</target>
- <target name="libs.fetch" if="ivy.dep.file.present">
- <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar}" />
+ <target name="libs.fetch" if="ivy.dep.file.present">
<ivy:retrieve conf="binaries" pattern="${build.libs.dir}/[artifact]-[revision].[ext]" />
<ivy:retrieve conf="sources" pattern="${build.libs-src.dir}/[artifact]-[revision].[ext]" />
</target>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/java/ivy-settings.xml Tue Aug 01 10:42:53 2017 +0100
@@ -0,0 +1,12 @@
+<ivysettings>
+ <properties environment="env"/>
+ <property name="ivy.executor-number" value="${env.EXECUTOR_NUMBER}" override="false" ifset="env.EXECUTOR_NUMBER"/>
+ <property name="ivy.executor-number" value="0" override="false"/>
+ <caches
+ defaultCacheDir="${ivy.default.ivy.user.dir}/caches/${ivy.executor-number}/default"
+ resolutionCacheDir="${ivy.default.ivy.user.dir}/caches/${ivy.executor-number}/resolution"
+ />
+ <settings defaultResolver="default"/>
+ <include url="${ivy.default.settings.dir}/ivysettings.xml"/>
+ <lock-strategies>artifact-lock-nio</lock-strategies>
+</ivysettings>
\ No newline at end of file
--- a/libs/java/build.ivy.xml Tue Aug 01 10:40:52 2017 +0100
+++ b/libs/java/build.ivy.xml Tue Aug 01 10:42:53 2017 +0100
@@ -2,10 +2,12 @@
<?eclipse.ant.import?>
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="stx.libjava.tools.dependencies" default="dependencies">
<property name="ivy.jar" value="../../java/ivy-2.4.0.jar"/>
- <target name="dependencies" description="Download required libraries">
- <taskdef
- resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
- classpath="${ivy.jar}"/>
+ <property name="ivy.settings.xml" value="../../java/ivy-settings.xml"/>
+
+ <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar}"/>
+ <ivy:settings file="${ivy.settings.xml}"/>
+
+ <target name="dependencies" description="Download required libraries">
<ivy:retrieve
conf="binaries"
pattern="libs/[artifact]-[revision].[ext]"/>