问题标签 [sbt-buildinfo]

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 回答
14011 浏览

scala - 我可以从代码中访问我的 Scala 应用程序的名称和版本(在 SBT 中设置)吗?

我正在使用 Scala 构建定义构建一个带有 SBT (0.11.0) 的应用程序,如下所示:

我在流程结束时打包了一个 .jar。

我的问题很简单:有没有办法从我的 Scala 代码中以编程方式访问应用程序的名称(“my-app-name”)和版本(“0.1”)?如果可以的话,我不想在两个地方重复它们。

非常感谢任何指导!

0 投票
1 回答
1159 浏览

java - 如何从 PlayFramework 中的 Java 代码访问 SBT 设置?

我有一个 PlayFramework 应用程序nameversionbuild.sbt.

如果我运行播放控制台,我可以通过键入name或访问此信息version

如何从应用程序内的 Java 代码中获取这些信息?我似乎找不到任何有用的方法,Play.application()也无法在文档中找到它。

0 投票
1 回答
4071 浏览

scala - IntelliJ Idea sbt 托管源文件

我正在使用sbt-buildinfo 插件,它从我的构建定义生成 Scala 源代码,允许我从我的 Scala 代码中引用项目名称、版本等。

它通过生成具有以下内容的文件BuiltInfo.scala来做到这一点:

目标/scala-2.10/src_managed/main/sbt-buildinfo/BuildInfo.scala

一切都编译好了,我可以参考那些 vals。

但是,IntelliJ Idea 不会将 BuildInfo.scala 识别为托管源文件,因此它不会向我显示错误。知道怎么做吗?

谢谢!

0 投票
1 回答
453 浏览

eclipse - 如何让 Eclipse 在 sbt/Scala/BuildInfo 项目中解析 BuildInfo

一些 Scala/SBT 项目,例如Tugboatgiter8使用BuildInfo - 例如,请参见此处此处当我在使用sbteclipse创建项目文件后将这些项目导入 Eclipse时,项目将无法编译,因为它无法解析 BuildInfo。

BuildInfo README 中有一些关于如何解决此问题的说明。但是,如果我将建议的行添加到 Tugboat SBT 文件中

它不能解决问题。在 Tugboat SBT 文件中,它指定了一些其他设置——我是否需要做其他任何事情才能访问 Eclipse 中的 BuildInfo?

0 投票
2 回答
1175 浏览

git - Heroku 应用程序的运行时可以知道它的提交 id 吗?

我希望我的 Heroku 应用程序(Play/Scala,在 Heroku Cedar 上运行)的运行时能够向我报告它是从哪个 git commit 构建的。Heroku 应用程序通常由 slug 编译器在 Heroku 的基础架构上构建 - 不幸的是,slug 编译器将其作为此构建过程的早期部分:

删除未使用的文件,包括 .git 目录、.gitmodules 文件、日志和 tmp 中的任何内容,以及顶级 .slugignore 文件中指定的任何内容。

...所以 Git 信息不再可用于sbt-buildinfo我用来记录 Git 提交的插件。

如何在 slug 中记录 HEAD 提交?此信息是否有可用的环境变量?

0 投票
1 回答
2025 浏览

scala - 如何不查看文件以了解 Play 框架中的更改

在编译项目时使用sbt-buildinfo创建文件的 Play Framework 2.2 项目上BuildInfo.scala,如何build.sbt配置以便 Play Framework 不会监视BuildInfo.scala文件的更改,并且不会在文件更改时重新启动服务器?

例如,如果会话开始于:

并且服务器以开发模式启动,然后在另一个终端窗口sbt中启动另一个会话(运行另一个子项目,或者只是运行其他sbt任务),第二个sbt会话将更新BuildInfo.scala文件,第一个sbt会话将检测到这一点并重新加载播放项目。

所以问题是如何BuildInfo.scala从监控中排除(但仍然编译并包含在分发包中)。

显然watchSources配置选项可能会有所帮助,但在阅读文档后,我无法弄清楚如何使用它来排除文件。

0 投票
0 回答
363 浏览

scala - sbtbuildinfo - 构建多个项目

我正在使用 sbt 构建一个多模块项目,并且我想使用 sbt-buildinfo 来允许其中一项服务包含此信息以进行调试和版本控制。

问题在于 sbt-buildinfo 插件似乎只获取根项目的库依赖项,而不是聚合子项目的所有依赖项。在我看来,如果您在聚合之后运行插件,那么根项目中就会包含这些依赖项并且会显示出来,但它们不会。也许我只是不理解这里的过程,但这对我来说似乎是合理的。

现在,这对一个项目非常有效,但对于许多子项目,它不再有效。另外现在它甚至不再生成文件,我现在不知道我在做什么错。这是我的构建。任何帮助表示赞赏。

我也对我的构建的任何想法持开放态度,我觉得我做错了或重复了一些事情,所以任何建议也很感激。谢谢!

0 投票
0 回答
625 浏览

scala - SBT:访问 Build.scala 中生成的类

我面临 SBT 托管来源的问题。

我想将一些自动生成的类(如 BuildInfo.scala)导入src_managed到我的 Build.scala SBT 文件中。

虽然所有类都会成功生成,但我无法在 Build.scala 中导入它们(找不到类)。

我所有的构建类都位于project文件夹中。

如何配置我的构建以便从 SBT 构建文件访问生成的类?

编辑

BuildInfo.scala的位于{root}/project/src_managed/sbt-buildinfo/。我想要做的是将这个类导入Build.scala位于{root}/project/. 但我得到一个编译错误:project/Build.scala:8: object BuildInfo is not a member of package *******

0 投票
1 回答
434 浏览

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

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

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

这可能吗?

0 投票
2 回答
2847 浏览

scala - sbt-buildinfo 生成的对象不能被引用

我正在使用前面提到的 sbt 插件来获取我正在开发的应用程序的版本。

该项目有子模块。这里是主要的build.sbt

生成BuildInfo.scala的位于target/scala-2.11/src_managed/main/sbt-buildinfo/BuildInfo.scala预期的下方。

当我转到里面的文件package co.uproot.abandon并尝试引用时,BuildInfo.version我得到

我在这里阅读了有关子模块和此插件的问题,并最终尝试了此解决方法,但这没有帮助。

任何帮助将不胜感激!