在我的工作中,我們在一些Java項目中使用了AspectJ。爲了使它與ant構建一起工作,我們已經將aspectjtools.jar放在ant/lib /中。如何覆蓋存儲在ant lib目錄中的ant任務
我現在正在研究一個特定的Java項目,並且需要使用較新版本的aspectJ。我不想讓每個使用該項目的人都更新其aspectjtools.jar的本地副本。相反,我嘗試將新的aspectjtools.jar添加到項目的lib目錄,並將以下行添加到build.xml中。
<taskdef
resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties"
classpath="./lib/aspectjtools.jar" />
然而,正如我希望的那樣從螞蟻/ lib目錄/優先於我在類路徑的taskdef指定JAR的ANT類加載器加載罐子這不起作用。
有什麼辦法可以強制ant選擇簽入我項目的jar嗎?
我一直在使用jarjar AspectJ的重新包裝成不同的包裝嘗試,但這個似乎已經打破AspectJ和感覺就像一個巨人黑客,所以我不再追求這種做法。 – mchr 2010-05-13 15:28:07
到目前爲止,我的結論是,沒有辦法強制螞蟻選擇簽入我的項目的jar。這感覺就像一個奇怪的設計選擇,因爲我預料特定項目的build.xml文件是選擇要使用的任務版本的最佳位置。 – mchr 2010-05-14 08:11:36
https://issues.apache.org/bugzilla/show_bug.cgi?id=6606 - 似乎是一個長期存在的錯誤。我正在閱讀評論主題。 – mchr 2010-06-14 23:11:35