问题标签 [sbt-aspectj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
981 浏览

sbt - 您如何开发 SBT 项目本身?

背景:我有一个 Play 2.0 项目,我正在尝试在我的一些类(Java)上使用 jar 中的方面添加一些东西来做 aspectj 编织。(sbt-aspectj 似乎没有这样做,或者我看不出怎么做)。所以我需要添加一个自定义任务,并让它依赖于编译。我已经弄清楚了依赖部分。但是,因为我不知道自己在做什么,所以我想使用 IDE 开发它(我使用的是 Scala-IDE)。由于 sbt 项目(以及因此 Play 项目)是递归定义的,我认为我可以:

  1. 将eclipse插件添加到myplay/project/project/plugins.sbt
  2. 将 sbt 主 jar(和 aspectj jar)添加到 myplay/project/project/build.sbt:

    libraryDependencies ++= Seq( "org.scala-sbt" % "main" % "0.12.2", "aspectj" % "aspectj-tools" % "1.0.6" )

  3. 进入 myplay/项目

  4. 运行 sbt,运行 eclipse 任务,然后将项目作为单独的项目导入到 eclipse 中。

我可以做到这一点,尽管 build.scala (和其他 scala 文件)最初并未被视为源代码,但我不得不稍微调整一下构建路径。然而,即使我已经为项目定义了 sbt main,eclipse IDE 和 compile 任务都会给出错误:

eclipse 项目在其引用库中既没有显示 main 也没有显示 aspectj-tools。但是,如果我给它一个伪造的版本(例如 0.12.4),重新加载会失败,所以它似乎正在使用依赖项。

所以,... 首先:这是正确的方法吗?第二:如果是这样,为什么不添加库。(第三:请不要让这成为我错过的愚蠢。)

0 投票
1 回答
667 浏览

scala - 在 SBT 中使用 Spring-Data-Neo4j 高级映射模式

我想在我的 Scala SBT 项目(托管在 github 上)中使用spring-data-neo4j的高级映射模式

我可以将节点与存储库一起存储在数据库中,但我无法使 aspectj-weaving 工作。

这是我到目前为止所拥有的:

构建.sbt:

项目/plugins.sbt:

节点类和存储库:

测试:

当我尝试运行测试时,出现以下错误:

我究竟做错了什么?

0 投票
1 回答
121 浏览

scala - 如何使用 AspectJ 和 Sbt 生成 SWF 客户端类

我需要在 sbt scala 项目中使用 Amazon SWF 做一些工作。所以我在生成 SWF 客户端类时遇到了问题。如果你们中的任何人在 Scala 项目中使用 SWF,请告诉我如何使用 sbt AspectJ 生成 SWF 客户端类。

0 投票
1 回答
515 浏览

akka - 用于 sbt 的 AspectJ 插件不起作用

我正在尝试将 aspectJ 插件添加到 sbt 以在我的 akka/scala 应用程序中使用 kamon。但我无法正确配置 aspectJ 插件。每次我运行项目时,都会收到此错误“AspectJWeaverMissing”。我对我的项目进行了以下更改以包含 aspectj 插件:

1) 将 plugins.sbt 添加到 my-project-dir/project/plugins.sbt

在 sbt.build 文件中添加了以下库依赖项:

请让我知道我在这里缺少什么?谢谢

0 投票
0 回答
167 浏览

sbt - 为什么 JavaScript 文件重新加载不适用于 Play 项目中的 sbt-aspectj?

我正在使用带有Play Framework 2.1.5的 sbt-aspectj插件。

当我点击刷新时,包括 javascript 文件在内的所有资源都不会自动重新加载——我需要重新启动服务器才能获得预期的结果。

似乎我在构建中遗漏了一些东西,但无法真正找到它可能是什么,因此是这个问题。

这是plugins.sbt文件:

Build.scala文件:

0 投票
2 回答
281 浏览

scala - 使用 Scala 在 Intellij IDEA 中运行 ApsctJ

我正在使用Intellij IDEA Community Edition 14.0.3进行 Scala 开发。我的应用程序中有 AspectJ。我正在使用sbt-aspectv0.10.1。当我从 SBT 控制台运行应用程序时,我能够运行一切正常。但是,当我从 intellij 菜单使用运行时,它并没有调用方面。因此,我无法在调试模式下运行。我怎样才能使它与 intellij 一起工作?

0 投票
1 回答
564 浏览

scala - 在 Scala 中使用 aspectj 时出错

我在scala中有一个应用程序。我需要将 AOP 用于其中一项功能。我使用了插件sbt-aspectj。当我使用 sbt 控制台运行时,一切正常。但是,在使用可执行 jar 时,我无法使其工作。我尝试了sbt-aspect git 页面中提供的示例代码。但是,我得到的错误是

.

我的 Build.scala 如下所示:

有谁知道如何解决这一问题?我在 sbt-aspectj github 页面上发布了这个,并在那里等待回复。但我有点急于解决这个问题。您的帮助将不胜感激。

0 投票
3 回答
2236 浏览

scala - Scala 中使用 SBT 的 AspectJ 切入点

我正在尝试使用sbt-aspectj插件构建一个在 Scala 中使用 AspectJ 切入点的 hello world 示例。在我的 plugins.sbt 中,我添加了插件:

在我的 build.sbt 中,我将其设置如下:

然后我创建了一个非常简单的 AspectJ 文件,围绕我的一个服务器类定义了一个切入点:

包io.bigsense;

所以那个类和函数确实存在。但是每当我运行 sbt 时,我都会收到以下消息:

我看过很多例子,我的切入点看起来是正确的。为什么它没有在运行时应用/编织到我的代码中?

编辑:添加 sbt 启动 java 的命令行参数:

0 投票
2 回答
1895 浏览

scala - 在 Play 应用程序中配置 Kamon 和 AspectjWeaver

我正在尝试配置一个播放应用程序以使用 Kamon。我创建了一个新的播放应用程序

然后我把它贴在了 github 上。我在 OS X 10.11.1 上运行,并且正在运行 JDK 1.8.0_65-b17,并且该项目配置了 scala 2.11.6。我已经根据配置 Play 的说明以及 sbt-aspectj-runner kamon-play 示例对其进行了配置(据我所知) 。但是,当我尝试使用以下任一方式运行应用程序时:

或者

我收到以下错误:

我已经尝试了以下所有方法:

  • 添加aspectj-play-runner:run到 plugins.sbt 文件(不编译)

  • 将 javaagent 参数传递给激活器:

    activator -J-javaagent::~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar

但这会导致以下错误:

  • 将 javaagent 参数传递给 sbt:

    sbt run -Djavaagent:~/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.5.jar

也试过

更新

我发现 aspectj-play-runner:run 是一个 sbt 任务/命令,所以我尝试了:

输出:

所以我尝试了:

哪个输出:

最后,文件实际上说我应该跑步

但是甚至无法识别命令/任务。

0 投票
2 回答
412 浏览

sbt - 带有本机打包程序的 sbt aspectj

我正在尝试将 sbt-aspectj 插件与 sbt 本机打包程序一起使用,并且遇到了一个问题,-javaagent即 aspectj 加载时间编织器 jar 的关联路径引用了常春藤缓存位置而不是打包的内容。

也就是说,在运行之后,通过这个 javaagent 中的结果sbt stage执行暂存的应用程序:bash -x target/universal/stage/bin/myapp/

exec java -javaagent:/home/myuser/.ivy2/cache/org.aspectj/aspectjweaver/jars/aspectjweaver-1.8.10.jar -cp /home/myuser/myproject/target/universal/stage/lib/org.aspectj.aspectjweaver-1.8.10.jar:/home/myuser/myproject/target/universal/stage/lib/otherlibs.jar myorg.MyMainApp args

我的目标平台是 Heroku,其中工件在被有效地“推送”到单个“dynos”之前构建(非常类似于 docker 设置)。这里的问题是生成的 -javaagent 路径在构建“分阶段”可部署的机器上有效,但在最终运行的地方不存在。

如何配置 sbt-aspectj 插件以引用打包的库而不是常春藤缓存中的库?


当前配置:

项目/plugins.sbt:

build.sbt(选定部分):


更新

我尝试了几种方法,包括从现有映射中提取 javaOptions 的相关输出,但结果是 sbt 抛出的循环依赖错误。

我有一些在技术上解决了我的问题但感觉不令人满意的东西。到目前为止,我直接包含了一个 aspectjweaver 依赖项,并使用 sbt-native-packager 的概念bashScriptExtraDefines来附加一个适当的 javaagent:

更新 build.sbt: