在我的工作中,我们在一些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