我敢肯定,一些正則表達式可以做到奇蹟,但我會簡單地創建一個自定義任務。
在您的任務中,您可以使用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