Я уверен, что некоторые регулярные выражения могут удивить, но я просто создал бы пользовательское задание.
В вашей задаче вы можете определить новое свойство с помощью метода getProjet().setProperty()
.
Что-то вроде следующего должно быть достаточно:
public class PreviousMonthTask extends Task {
private String currentDate;
private String propertyName;
public void setCurrentDate(String currentDate) {
this.currentDate = currentDate;
}
public void setPropertyName(String propertyName) {
this.propertyName = propertyName;
}
@Override
public void execute() throws BuildException {
// calculate the previous month
String previousMonth = ...;
getProject().setProperty(this.propertyName, previousMonth);
}
}
Осталось определить файл свойств со ссылкой на класс:
previousmonth = org.myproject.PreviousMonthTask
Когда вы загружаете задачу (см. Документацию по Ant), вам просто нужно вызвать ее с помощью:
<previousmonth propertyName="previous" currentDate="${current}"/>