Поскольку вы имеете дело с разными загрузчиками классов, вы никогда не добьетесь того, чтобы загрузчик классов нашел «неправильный» экземпляр того же класса и, следовательно, использовал «неправильное» статическое значение. Вы должны сделать связь между вызовами муравья через файл. Временный файл, скорее всего, не подойдет, так как он, вероятно, будет удален до того, как второй набор классов ant получит возможность работать с ним.
Существует две проблемы: генерация подходящих значений свойств и передача их между вызовами муравья. Возможно, вам все это не нужно, поскольку в вашей ситуации уже могут быть сгенерированы подходящие идентификаторы, но это здесь, если вы это сделаете.
Чтобы сгенерировать подходящие значения, один процесс ant должен выполнить задачу propertyfile, чтобы сгенерировать подходящие имена с изменяющимся идентификатором для каждого прогона в качестве части имени
<propertyfile file="testConfig.properties.ids" comment="Machine generated file, do not edit!">
<entry key="test.suite.1.id" type="int" operation="+" unit="1"/>
<entry key="test.suite.2.id" type="int" operation="+" unit="1"/>
</propertyfile>
<properties file="testConfig.properties.ids"/>
<propertyfile file="testConfig.properties" comment="Machine generated file, do not edit!">
<entry key="test.suite.1.name" type="string" operation="=" value="TestSuite${test.suite.1.id}.sh"/>
<entry key="test.suite.2.name" type="string" operation="=" value="TestSuite${test.suite.2.id}.sh"/>
</propertyfile>
Последующие процессы ant могут быть просто источником в исходном файле свойств процесса ant.
<property file="testConfig.properties"/>
Который будет иметь эффект определения
test.suite.1.name=TestSuite34.sh
test.suite.2.name=TestSuite83.sh