问题标签 [sbt-plugin]

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 投票
1 回答
97 浏览

scala - inetelliJ 想法 - sbt 插件与独立 sbt 冲突

我想在 Ubuntu 上设置 Spark-Scala-Sbt 开发环境

所以我在安装 IntelliJ 之前分别安装了 SBT、Scala。

但是在安装了 intelliJ 之后,我也为 intelliJ 安装了sbt插件。

现在如何避免 2 个 sbt 之间的冲突使用哪一个以及如何正确设置以避免冲突。

还想知道 HOW .. 安装的 Scala & SBT 与 itelliJ IDEA 附带的 scala & sbt 插件不同

0 投票
1 回答
832 浏览

scalatest - 未知工件 sbtplugin 带有 scala 2.12 的超级安全编译器

在 Scala 2.12 的 sbt 项目中,我使用 IntelliJ IDEA 并希望导入 scalatest。为了安装推荐的 SuperSafe 社区版 Scala 编译器插件。我按照这里的说明进行操作。

我的plugin.sbt

addSbtPlugin("com.artima.supersafe" % "sbtplugin" % "1.1.2")

Intellij 导入显示的错误是:

也许与新的 Scala 版本不兼容?

0 投票
1 回答
530 浏览

sbt - SBT 插件:是否可以为单个测试运行脚本而不是运行所有测试?

我有 5 个脚本测试来测试我的 sbt 插件。所有这些都需要很长时间才能运行。我有时只想运行其中一项测试。

是否可以指定脚本运行哪个测试?

0 投票
1 回答
809 浏览

java - 如何在 sbt 项目中使用 sbt 插件作为库依赖项?

我有一个使用多项目构建的 sbt 插件项目。我想将此插件用作其他 sbt 项目的依赖项。我已经创建了一个插件,但是当我将此插件添加到项目时,我似乎无法正确链接依赖项。

sbt 插件

构建.sbt

sbt-plugin\plugin\src\main\scala\com\example\Hello.scala

插件测试

plugin-test 是一个 sbt 项目,我用来测试 sbt-plugin

插件测试\build.sbt

插件测试\项目\plugins.sbt

插件测试\src\main\scala\com\exam\Test.scala

但是当我编译插件测试项目时,它显示以下错误:

我在两个项目上都执行了发布本地和插件/发布本地,并且工件正确解析。我将 sbt-plugin 添加到plugins.sbt并编译了项目,但Test.scala由于上述错误无法编译,就好像依赖项不存在一样。

我在这里想念什么?

0 投票
1 回答
374 浏览

scala - 如何通过将 sbt-plugin 用作多项目构建中的依赖项来访问它的子项目?

我有一个使用多项目构建的 sbt 插件项目。我想将此插件用作其他 sbt 项目的依赖项并访问此 sbt 插件的子项目。我创建了一个插件并将插件添加到一个 sbt 项目中,但我无法访问那里的插件子项目。

sbt 插件

构建.sbt

sbt-plugin\plugin\src\main\scala\com\example\Main.scala

sbt-plugin\plugin\src\main\scala\com\example\Hello.scala

插件测试

plugin-test 是一个 sbt 项目,我用来测试 sbt-plugin

插件测试\build.sbt

插件测试\src\main\scala\com\exam\Test.scala

当我从 root 运行 plugin-test 项目时,它正在运行,但有下面提到的日志,我不确定它为什么会显示这个,因为根据我的输出只会Hello, world!

当我尝试通过运行 sbt-plugin 的子项目时 pluginpro/run,它找不到主类。

我在 sbt-plugin/plugin 项目中创建了主类。我在两个项目上都执行了本地发布和插件/本地发布,并且正确解析了工件。

我在这里想念什么?

0 投票
1 回答
426 浏览

scala - 如何在 sbt 项目中重用 Ammonite REPL 的 sc 文件?

我有一些sc在一些 Jupyter Scala 笔记本中使用的可重复使用的 Ammonite REPL 文件。

现在我正在创建一个由 sbt 构建的独立应用程序。我希望我可以sc在 sbt 项目中重用这些现有文件。

sc是否可以为 Jupyter Scala/Ammonite REPL 和 sbt 项目共享这些文件?如何使scala源和sc文件一起编译?

0 投票
1 回答
236 浏览

sbt - 在 sbt 插件掩码运行任务中覆盖集成测试配置

考虑以下 sbt 插件定义,它“覆盖”默认的“it”配置以扩展测试配置(原因在如何使“测试”类在“it”(集成测试)配置中可用?

虽然这似乎通常有效,但它“掩盖”了运行任务。请参阅使用上述插件的项目的以下 sbt 输出:

请注意:run而不是compile:run。不知何故,“it”配置的重新定义似乎重新定义/屏蔽了运行任务。如果我选择“有趣”而不是“它”,则不会发生这种情况。我正在使用 sbt 0.13.15。

知道这里发生了什么以及如何防止运行任务被屏蔽吗?

0 投票
0 回答
31 浏览

sbt - SBT:发现任务的先前版本

目标是一个主插件,它可以根据使用主插件的项目中的设置来决定运行哪些其他插件。在这一点上它已经成为学术,我学到了很多东西。

当前正在编译的实现具有打包步骤依赖于 taskDyn,它要么进行插件的关键调用(手动从插件源中挖出并复制到 taskDyn 中),要么调用在主插件之前存在的打包任务的版本参与其中。逻辑和接线都在那里,当谓词有效时,会进行插件调用,但对前一个任务的调用被证明是难以捉摸的。

我目前必须找到旧打包程序的代码引入了循环依赖,因为作用域工件依赖于 taskDyn,并且当任务突然想知道作用域工件时(至少我现在这样做的方式),繁荣。

val original : TaskKey[(Artifact, File)] = packagedArtifact in(Compile, packageBin) val osgiTask: Def.Initialize[Task[File]] = Def.taskDyn[File] { if (featureFile.value.exists) { addArtifact(Def.setting(Artifact(moduleName.value, "xml", "xml", "feature")), featureFile.toTask) OsgiKeys.bundle } else { Def.task(original.toTask.value._2) } }

如果这是一个简单的问题,我只需要弄清楚如何将原始/默认任务分配给依赖项。这个问题可能无法解决——可能无法发现和缓存分配给创建作用域工件的任务的原始版本,或者如果不创建循环依赖项,它的使用可能是不可能的。如果是这样,你能想象另一种方法来做到这一点吗?

当前来源位于https://gist.github.com/briantopping/274204cc527669baa19b80536ce8bd11

谢谢!

0 投票
1 回答
2116 浏览

scala - SBT 插件:如何将编译器插件添加为不向下游传播的依赖项?

我正在写一个 SBT 插件。我想使用 Circe JSON 库,但它需要 Scala 2.10 上的 Macro Paradise 编译器插件。

通常你添加编译器插件build.sbt和 SBT 插件到project/plugins.sbt.

现在,当您构建 SBT 插件时,其他插件成为依赖项,因此您将它们放入并将build.sbt它们传播到您使用 SBT 插件的项目。

当我将以下片段放入build.sbt我的 SBT 插件时:

Paradise 编译器插件是否会传播到下游项目?

0 投票
1 回答
95 浏览

dependencies - 访问 sbt 插件中的依赖(非子)项目

请在下面找到使用我们插件的示例 build.sbt 文件。在这个示例 BasePlugin 中,我们想要 a/project、b/project 目录的完整路径:-

另外,在下面找到简化的 sbt 插件 BasePlugin.scala :-

如何访问 sbt 插件中的依赖项目。