Вычислить свойство арифметически
Короче говоря, я не могу сделать вычисление на основе свойства в моем файле сборки.
Допустим, у меня есть:
<property name="basedir" value="${project.basedir}" />
<- текущее значение 73
Как узнать предыдущие 3 билда ( 72,71
а также 70
) ИЛИ как я могу вычислить эти значения (основываясь на свойстве basedir)?
Я пытался (игнорировать дополнение):
<property name="basedir" value="${project.basedir}+1" />
<- Но это соответствует значению:73+1
<property name="basedir" value="${project.basedir+1}" />
<- Но это просто неправильно:build_${env.BUILD_NUMBER+1}
Сценарий: удалить старые выпуски (сохранить некоторые выпуски в случае отката)
PS: дублирующаяся ссылка недействительна, потому что это развертывание через PHING, а не ANT
1 ответ
Вы можете использовать adhoc-задачу для этого:
<?xml version="1.0"?>
<project default="main" phingVersion="2.11.0">
<property name="basedir" value = "73"/>
<adhoc-task name="increment"><![CDATA[
class increment extends Task {
private $value;
function setvalue($value) {
$this->value = $value;
}
function setProperty($property) {
$this->property = $property;
}
function main() {
$this->project->setProperty($this->property, ((int) $this->value + 1));
}
}
]]></adhoc-task>
<target name="main">
<echo>${basedir}</echo>
<increment value="${basedir}" property="basedir"/>
<echo>${basedir}</echo>
</target>
</project>