首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在playframework 2.1.1中配置aspectj编译

如何在playframework 2.1.1中配置aspectj编译
EN

Stack Overflow用户
提问于 2013-05-15 22:53:15
回答 1查看 2.1K关注 0票数 1

我已将此声明添加到plugins.sbt中

代码语言:javascript
复制
addSbtPlugin("com.typesafe.sbt" % "sbt-aspectj" % "0.9.0")

现在我想配置这个插件,使用方面库org.springframework:spring-aspects:3.1.4编译我的java控制器类,就像使用aspectj-maven-plugin一样

我已经设置了这个配置:

代码语言:javascript
复制
import sbt._
import Keys._
import play.Project._
import com.typesafe.sbt.SbtAspectj._
import com.typesafe.sbt.SbtAspectj.AspectjKeys._

object ApplicationBuild extends Build {

    val appDependencies = Seq(javaCore)

    val main = play.Project(appName, appVersion, appDependencies).settings(
        AspectjKeys.verbose in Aspectj := true,
        AspectjKeys.showWeaveInfo in Aspectj := true,
        AspectjKeys.inputs in Aspectj <+= compiledClasses
    )

}

但它确实失败了。

代码语言:javascript
复制
[error] Reference to undefined setting: 
[error] 
[error]   aspectj:inputs from aspectj:inputs

我真的是sbt的新手。

插件github页面:https://github.com/sbt/sbt-aspectj

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-17 17:50:36

好的,我让它工作,感谢sbt邮件列表,cf。https://groups.google.com/forum/?fromgroups=#!topic/simple-build-tool/MUXyfKigC7w

以及播放框架邮件列表,参见。https://groups.google.com/forum/?fromgroups=#!topic/play-framework/RfJFEwVbUUk

事实上,这并不是很难,但却是你看不到的东西。

代码语言:javascript
复制
import sbt._
import Keys._
import play.Project._
import com.typesafe.sbt.SbtAspectj._
import com.typesafe.sbt.SbtAspectj.AspectjKeys._

object ApplicationBuild extends Build {

    val appDependencies = Seq(javaCore, filters)

    val main = play.Project(appName, appVersion, appDependencies)
            .settings(aspectjSettings: _*)
            .settings(
                    libraryDependencies += "org.springframework" % "spring-aspects" % "3.1.4.RELEASE",
                    libraryDependencies += "org.springframework.security" % "spring-security-aspects" % "3.1.4.RELEASE",
                    sourceLevel := "-1.7",
                    verbose in Aspectj := false,
                    showWeaveInfo in Aspectj := false,
                    inputs in Aspectj <+= compiledClasses,
                    binaries in Aspectj <++= update map { report =>
                        report.matching(
                                moduleFilter(organization = "org.springframework", name = "spring-aspects")
                                || moduleFilter(organization = "org.springframework.security", name = "spring-security-aspects")
                        )
                    },
                    products in Compile <<= products in Aspectj,
                    products in Runtime <<= products in Compile
                )
}

别忘了在plugins.sbt中添加这个,在声明之间加一个新的行分隔符

代码语言:javascript
复制
addSbtPlugin("com.typesafe.sbt" % "sbt-aspectj" % "0.9.0")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16568349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档