问题标签 [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 回答
880 浏览

sbt - SBT - 如何为特定任务禁用插件(例如“包”)

有没有办法为特定任务禁用 SBT 插件(AutoPlugin)。

例如,我想在打包时禁用插件 Scoverage。

我试过:

但这不起作用。所以我寻找一种完全禁用插件的方法。

0 投票
2 回答
1748 浏览

scala - 非托管 jar 文件中的 SBT 插件

要求:SBT 插件代码位于非托管 jar 中,例如lib/unmanaged-sbt-plugin-0.0.1.jar. 我期待 jar 文件会被 SBT 自动拾取,并且插件可以开箱即用,即:可以从 SBT 命令行访问任务,但事实并非如此。

jar 文件中包含该sbt/sbt.autoplugins文件,如果从远程仓库拉到本地仓库并通过addSbtPlugin(...). 请注意我不能这样做 - 需要lib/unmanaged-sbt-plugin-0.0.1.jar从本地/远程仓库而不是从本地/远程仓库加载它。

将以下行放入build.sbt不会使插件工作(也没有错误):

unmanagedJars in Compile += file("lib/unmanaged-sbt-plugin-0.0.1.jar")

的实现addSbtPlugin(...)很简单(根据http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Using-Plugins.html):

我想知道上述信息是否可以用来解决我的问题?

先感谢您!

0 投票
1 回答
581 浏览

scala - How to run task defined in sbt plugin

In my project I use plugin which exposes task genExport. I can run genExport task from console with:

My problem is I cannot configure my sbt project to run genExport after project compilation:

From sbt documentation I could not get how to invoke task from plugin by name. I've experimented with:

without any success. What I'm missing?

0 投票
1 回答
146 浏览

sbt - sbt - 存在不想要的依赖时构建失败

如果存在不需要的依赖项,我要求我的 sbt 构建应该失败。具体用例:我们希望使用 log4j2 作为日志框架,并且不希望任何依赖项传递包括 logback、commons-logging 等。人。

使用 maven 我会使用强制插件,但我不知道如何在 sbt 中执行此操作。

到目前为止我的发现:我可以在全球范围内排除依赖项(https://github.com/sbt/sbt/pull/1748)。不过我不希望这样,我们需要构建失败,所以我们在首次引入时注意到依赖关系。

我还找到了https://github.com/CSUG/sbt-one-log,但它不太符合我们的要求,似乎也没有得到积极维护。

在我开始编写自己的插件之前 - 是否有现有的机制来实现这一点?

0 投票
1 回答
434 浏览

scala - 我如何要求 sbt-buildinfo 仅在(重新)加载时运行而不是编译时运行?

我使用sbt-buildinfoSBT 插件,效果很好。

我想改进以下几点:目前,生成文件中的所有值只有在重新加载整个 sbt 项目时才能更改,因此不会在每次compile运行时更改。因此,我想防止BuildInfo在编译时重新生成,而是仅在项目加载时直接生成它。

这可能吗?

0 投票
1 回答
335 浏览

playframework - 尝试将 Play 项目导入 Eclipse 时出错

我正在运行 Play 2.4,并尝试将项目导入 Eclipse。

我添加到项目 build.sbt 中:

当我运行 activator compile 时(如教程所示):

我收到以下错误,说sbteclipse找不到插件:

任何想法如何解决这一问题?我需要手动下载插件吗?

0 投票
0 回答
304 浏览

maven - addSbtPlugin 没有 scala 版本

我正在尝试在我的项目中使用 babel webjar 插件,该插件是用 playframework 2.5 构建的,它基本上是sbt为了构建项目而运行的。

当我把

在 project/plugins.sbt 中,我收到此错误:

pom 文件位于http://repo1.maven.org/maven2/org/webjars/babel/6.3.26-1/babel-6.3.26-1.pom。这几乎是sbt尝试的地址,但是sbt添加了scala版本。

有没有办法告诉 sbt 不要添加 scala 版本?我尝试了这个版本和一个百分号,他们都添加了 scala 版本。

我正在使用 sbt 0.13.9。

0 投票
1 回答
492 浏览

scala - 编写 sbt 插件时如何处理库驱逐?

我尝试编写一个使用jsch的简单 sbt 插件。由于安全原因(ecdsa),我的要求是在0.1.53中使用 jsch 。我已经在我的build.sbt文件中声明了依赖项:

不幸的是org.scala-sbt:ivy2.3.0 引入了对0.1.46的依赖。SBT 说旧版本被驱逐了,尽管在运行时使用我的插件时我可以看到它仍在针对 0.1.46 jsch 运行。

我在 0.13.11 版本中使用sbt

我已将我的插件添加到测试项目中。运行我的 sbt 任务时,我收到明确的日志消息:[info] Local version string: SSH-2.0-JSCH-0.1.46 和关于不受支持的算法的错误,这使我得出结论,我的 jsch 版本已被某种方式覆盖。

问题是在编写 sbt 插件时如何处理库驱逐?

0 投票
1 回答
363 浏览

scala - 在 SBT 多项目构建中运行 scalastyle

我有一个多项目构建设置的 SBT 项目。

  • 子项目A(根依赖它)
  • 子项目B(根依赖它)

我只想为项目中的几个文件运行 scalastyle,这些文件可能位于三个项目中的任何一个中。为了选择这些文件,我scalastyleSources在运行之前从命令行修改,scalastyle如下所示:

root在我指定的文件上正确运行,但随后又为 sub-projectA 和 sub-projectB 运行了两次,完全忽略了我之前分配给scalastyleSources.

我需要一种方法让 SBT 知道我只想使用更改的配置运行一次 scalastyle,或者在运行命令时完全忽略某个项目的能力。

这可能吗?

0 投票
0 回答
25 浏览

sbt - 运行不在 build.sbt 中的 sbt 插件

我正在尝试为 IDE 编写一个 SBT 插件来查询诸如源路径之类的信息。使用 Maven,我会做类似的事情

这有效,即使pom.xml不引用插件。有没有类似的方法来做到这一点sbt

获取源路径就是一个例子。我知道我可以用 来做到这一点sbt show sourceDirectories,但这不是一个好的答案,原因有两个:

  1. 我希望能够为mvnand使用相同的界面,sbt以及将来支持的任何其他构建工具,这涉及启动一个流程来响应查询
  2. 我正在寻找的不仅仅是源路径

是否可以在不让用户将其添加到 build.sbt(或全局安装)的情况下启动我的插件?还是有更好的方法从远程存储库运行 jar(build.sbt 中未提及)?