我敢肯定,一些正则表达式可以做到奇迹,但我会简单地创建一个自定义任务。
在您的任务中,您可以使用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
当加载任务(见蚂蚁文档),你只需要调用你的任务:
<previousmonth propertyName="previous" currentDate="${current}"/>
我真的很喜欢这个。 – Tom 2010-02-10 18:36:38
直到现在,我从来没有想过使用scriptdef和javascript来简化任务定义。谢谢! – akr 2010-02-10 20:50:09