问题标签 [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 投票
3 回答
514 浏览

sbt - 在元构建级别运行 sbt 命令

sbt 允许我们在根项目级别运行 sbt 命令。

如何在元构建级别运行命令?(在root/project/project目录中定义)

我的用例是我的一些 sbt 插件具有相同依赖项的不同版本,并且旧的依赖项被逐出。我想使用 sbt-dependency-graph 进行调查

0 投票
5 回答
11846 浏览

scala - 在 IntelliJ IDEA 中找不到 SBT-shell

面对构建的一些问题,我删除了我的 SBT 项目的project.idea目录(包含submodules),然后是Invalidate Caches / Restart...(也使缓存无效)

自从重新启动以来IntelliJ,我找不到sbt shell 在此处输入图像描述

有趣的是,sbt shell当我打开我的其他项目(我没有删除project.idea目录)时,我仍然得到IntelliJ 在此处输入图像描述

我可以确认我安装了最新版本的IntelliJ IDEAforMacOS并安装了 Scala 插件 在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
29 浏览

sbt - SBT 中 API 文档的版本控制

我可以使用sbt-ghpages插件发布 API 文档。但是插件的文档并没有解释如何为每个版本维护多个版本的 API 文档。如何使用sbt-ghpages或任何其他替代方案(如果有)来做到这一点。

0 投票
2 回答
2648 浏览

scala - Scala:IntelliJ 以红色突出显示正确的代码

美好的一天IntelliJ开始用红色突出显示我的工作Scala代码。虽然以下命令运行顺利,但IntelliJ认为代码充满了错误并且缺少很多dependencies.

  • sbt clean
  • sbt reload
  • sbt update
  • sbt compile
  • sbt assembly

它报告了很多Cannot resolve symbolsinimportsclasses方法调用,objects如下所示。此外,它认为很多导入是未使用的(对于它找不到的符号) 在此处输入图像描述

有趣的是,所有这一切都发生在我的一个项目中(包含两个submodules内部父模块),而其他Scala项目(包括那些包含submodules)工作正常。

我没有运气尝试过的事情:

  • 删除 ( rm -rf) 与构建相关的目录,如.idea, target,~/.ivy2/caches
  • Invalidate Caches / Restart...
  • 更新IntelliJ IDEAScala插件到最新版本
  • 关闭并重新导入项目,退出IntelliJ,重启电脑(!)

我在用着:

  • IntelliJ IDEA 2017.3.2(社区版)
  • Build #IC-173.4127.27,建于 2017 年 12 月 25 日
  • JRE:1.8.0_152-release-1024-b8 x86_64
  • JVM:JetBrains sro 的 OpenJDK 64 位服务器 VM
  • Mac OS X 10.13.2

我的项目配置是:

  • 斯卡拉 v2.11.11
  • SBT v1.0.3

再一次,我想提醒一下,我的Scala代码是完全正常的,并且我能够运行其他地方JAR生成的代码sbt assembly而不会出现问题。

0 投票
2 回答
4048 浏览

scala - 带有 SBT 组件的多个主要类

我正在寻找为 AWS Lambda 创建 jar 来运行作业任务。目前我的 build.sbt 文件看起来像这样:

运行sbt assembly将模块组装service到我的 API 的 jar 中,并且工作正常。然而,该模块job将有多个Main类(一个公关工作),并且当我运行sbt assembly jobservice模块时,它也会被组装(即使它不依赖于它)。

如何将我的设置配置为仅job在需要时组装模块,并将各个 mainClasses 指定为单独组装的 jar?

0 投票
1 回答
525 浏览

sbt - 可以禁用 sbt 1.x 服务器吗?

我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过InteractionService.

尽管这可能过于偏执,但我尽量小心地尽量减少使用私人信息的软件的攻击面,并且在这些构建中不必要地运行服务器(即使在 localhost 或 UNIX 套接字上)感觉就像是不卫生。

我一直在寻找可以在插件中设置的设置,该设置将禁用服务器启动,除非被构建覆盖。到目前为止还没有发现这样的东西。有这样的设置吗?

非常感谢!


更新:在 Eugene Yokota 的帮助下,从 sbt 1.1.1 开始,现在有一个布尔autoStartServer设置。构建和插件可以通过设置来防止服务器自动启动autoStartServer := falsestartServer(如果他们愿意,用户仍然可以通过运行手动启动服务器。)

0 投票
4 回答
8762 浏览

scala - IntelliJ IDEA - sbt 插件 - '表达式类型 Def.Setting [...] 必须符合 sbt 文件中的 DslEntry'

我寻找了类似的问题,我发现了这个:

表达式类型 DslEntry 必须符合 SBT 文件中的 Def.SettingsDefinition 行 enablePlugins(JavaServerAppPackaging)

我的问题是类似的,但发生在每一行。

图片链接

当我尝试运行时,它编译并成功运行。当我单击“导入项目”时,黄色通知没有消失,但项目重新加载成功。如果我将任何行重写为,例如,val _ = scalaVersion := "2.12.4"错误就会消失,但它看起来很糟糕。

0 投票
0 回答
20 浏览

scala - 插件应该缓存 Initialize[Task[T]] 对象吗?

通过试验和可能的错误,作为插件作者,我已经使用以下样式,这似乎有效:

不幸的是,我实际上并不了解所有这些构造是如何工作的,例如为什么它是一个Initialize[Task[T]]I 生成而不是一个Task[T]. 我假设这个成语“做正确的事”,我认为这意味着该amazeTask函数为每个生成一些不可变任务的包装器或种子或生成器,Configuration并将其绑定到适当的任务键一次。但这对我来说是完全不透明的。例如,当我查找Initialize时,我看到一个value需要参数的方法,我在上面的成语中没有提供该参数。我假设在设计 SBT 配置时使用了带有隐式和/或宏的 DSL 技巧,并且对此不以为然。

但是,最近我想将我的任务中的一些逻辑分解为逻辑上私有的函数,但也需要访问任务和设置的值。如果只使用私有函数,收集所有参数将成为表单的重复样板

我需要使用的任何地方都可以从设置中获取值。所以最好将所有这些因素都纳入一项derivedValue任务,我可以将上述所有内容替换为

科尔。

但我确实想derivedValue保密,所以我不将它绑定到任务键。我只是这样做:

现在它可以很好地实现我真正的公共任务......

伟大的!它确实工作得很好。

但是我很难假设这个习语有一些魔法可以做正确的事情,那就是Task每个配置只生成一个不可变对象并重用它。所以,我对自己想,我应该记住这个findDerivedValueTask函数,这样在它生成一个任务之后,这个任务就会被存储在 a 中Map,它的键是Configurations,但它的值在逻辑上Task是 s。

但现在我不理解幕后发生的事情。我应该存储Initialize[Task[DerivedValue]]还是只存储Task[DerivedValue],还是什么?我是否需要打扰,sbt 是否有一些聪明的魔法已经在为我处理这个问题?我真的只是不知道。

如果你已经读到这里,我非常感激。如果您能澄清这一点,或者向我指出解释这些东西如何工作的文档,我将更加感激。谢谢!

0 投票
1 回答
760 浏览

sbt - sbteclipse:创建 build.sbt 和 plugins.sbt

我已经下载了 sbt 并解决了代理 maven 存储库错误,我使用 my-maven-proxy-releases 创建了存储库文件:在 ~/.sbt

当我做 sbt about 时,我得到以下详细信息:

现在,我想在 Eclipse 中导入一个项目,然后用 Google 搜索。这是我找到的细节。

但是我对在哪里创建 build.sbt 和 plugins.sbt 感到困惑,因为我的文件夹结构是这样的:

我没有看到在 sbt 中显示的 ~/.sbt/1.0.4 。

如果我的理解有误,请指导。

0 投票
1 回答
9457 浏览

scala - 使用 sbt 构建 scala 项目时,scala 的版本有什么关系?

我正在使用 SBT 1.x 构建一个 scala 项目(用 scala 2.11 编写)。有一些“scala 版本”让我感到困惑。

请帮我弄清楚它们之间有什么区别或关系。以及 SBT 在编译或运行项目时如何区分它们?