【问题标题】:AspectJ compile-time weaving and ScalaAspectJ 编译时编织和 Scala
【发布时间】:2012-11-21 10:40:44
【问题描述】:

是否有可能有一个 Scala Maven 项目并在编译时在 Scala 类中编织 AspectJ 方面?

我已经能够让加载时编织工作,但到目前为止编译时没有成功。

这些方面根本没有融入到 Scala 类中。据我了解,编译时编织需要特定的 Java 编译器(AspectJ Compiler aka ajc)。我的理解是ajc不能编译Scala。

Scala 是否有等效的 ajc?或者也许是另一种让编译时编织与 Scala 一起工作的方法?

【问题讨论】:

  • 需要更多信息。您是否遇到错误,或者只是没有看到您期望融入的行为?你可以发布一些你的工件。
  • 我已添加详细信息。我没有收到错误,并且这些方面没有编织。这是意料之中的,因为我根本看不到它应该如何工作。我看不到如何配置 AspectJ 编译器来编译 Scala 并在 Scala 字节码中注入方面。

标签: scala maven aspectj compile-time-weaving


【解决方案1】:

答案 1 不是真正的编译时编织 - 它是已编译类的二进制编织。例如,如果您的 scala 类需要这些方面来正确编译,它就不会起作用。我认为 scala 中的编译时编织问题仍然是一个悬而未决的问题。

我们同意原始发布者的评估,即 ajc 不太可能知道如何编译 scala。

【讨论】:

    【解决方案2】:

    如何使用 AJC 的 -inpath 开关?它接受目录或 JAR 中的 .class 文件并将其编入其中。您的 Scala 编译为 .class 文件,因此应该可以工作。毫无疑问,您拥有 AJC 文档,但 here's a link

    【讨论】:

    • 我能够使用 aspectj-maven-plugin 的“weaveDirectory”参数(映射到 ajc 的 -inpath)使其工作。谢谢!
    猜你喜欢
    • 2013-03-18
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多