spring aspectj - 编译时编织外部jar

时间:2011-01-31 16:26:20

标签: spring aspectj compile-time-weaving

我有一个使用方面编译时编织的项目。这个项目依赖于另一个项目,它包含在一个jar中。我想在编译时在jar文件中编织一个类。我怎样才能做到这一点。

由于

2 个答案:

答案 0 :(得分:4)

需要将此jar添加到正在编译的项目的inpath中。结果将是一组新的类文件。这些新的类文件是编织的文件,应该在运行时而不是原始的jar中使用。

如何设置in路径取决于编译代码的方式:

  1. 在Eclipse / AJDT中,您可以在AspectJ Build项目属性页面上设置in路径。在这里,您还可以设置路径内输出文件夹,以指定这些类文件的特殊位置。
  2. 使用iajc任务从ant获取,可以使用inpath属性。有关详细信息,请参阅此处:http://www.eclipse.org/aspectj/doc/released/devguide/antTasks-iajc.html
  3. 使用ajc命令时,请使用-inpath选项。见http://www.eclipse.org/aspectj/doc/released/devguide/ajc-ref.html
  4. 棘手的部分是要记住避免在正在运行的应用程序中使用原始jar,而是使用编织罐。

答案 1 :(得分:4)

如果您使用的是maven,也可以使用aspectj-maven-plugin。它适用于eclipse(m2e)。

在插件中,只需在配置/ weaveDependencies / weaveDepedency中指定依赖jar的groupId / artifactId。

请参阅http://mojo.codehaus.org/aspectj-maven-plugin/weaveJars.html