相关疑难解决方法(0)

RootProject和ProjectRef

我一直试图找到有关RootProject和ProjectRef的更多信息,但看起来在sbt文档中根本没有提到它.

据我所知,如果您正在引用根项目,则在引用子项目时应使用RootProject和ProjectRef.然而,目前尚不清楚它们之间的行为将如何不同.有人可以帮忙解释一下吗?

此外,它没有记录,这是否意味着RootProject和ProjectRef不是推荐的引用其他sbt项目的方式?

谢谢.

sbt

22
推荐指数
1
解决办法
3883
查看次数

SBT插件不使用自定义解析器

我正在尝试将sbt-native-packager插件添加到我的sbt构建中.出于多种原因,我不希望我的构建依赖于默认的sbt存储库,我已经阻止了对网络的访问,并通过<project_home>/project/plugins.sbt以下方式向我添加了一个解析器:

resolvers += "local-repo-plugins" at "file:///" + baseDirectory.value + "/libs/repo/"
resolvers += Resolver.url("my-ivy-proxy-plugins", url("http://fullURLForRepo/"))(Patterns("[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]") )

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4")
Run Code Online (Sandbox Code Playgroud)

我可以确认它在我的常春藤代理中托管的插件,但这甚至不是问题,因为sbt仍在尝试转到默认的repos:

[info] Resolving com.typesafe.sbt#sbt-native-packager;0.7.4 ...
[error] Server access Error: Connection timed out url=https://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbt/sbt-native-packager/scala_2.10/sbt_0.13/0.7.4/ivys/ivy.xml
[error] Server access Error: Connection timed out url=https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-native-packager/scala_2.10/sbt_0.13/0.7.4/ivys/ivy.xml
[error] Server access Error: Connection timed out url=https://repo1.maven.org/maven2/com/typesafe/sbt/sbt-native-packager_2.10_0.13/0.7.4/sbt-native-packager-0.7.4.pom
Run Code Online (Sandbox Code Playgroud)

此外,这个非常相同的自定义解析器<project_home>/build.sbt在解析库依赖关系时工作得很好(连同其他几个,包括一个基于本地文件系统的解析器).

虽然我理解为什么我的项目构建中使用的解析器与我使用的解析器不同,但我<project_home>/project/plugins.sbt对我刚才描述的问题有几个问题:

  1. 这是为插件定义解析器的正确方法吗?只是将它们添加到<project_home>/project/plugins.sbt具有该语法的?
  2. 如果问题1)的答案是肯定的:在定义这些解析器时是否有任何方法可以避免冗余?例如,我已经完全定义了相同的<project_home>/build.sbt
  3. 最重要的是:为什么sbt构建不使用我在解析器中指定的常春藤代理来检索sbt-native-packager插件?

scala sbt

6
推荐指数
1
解决办法
5306
查看次数

在sbt中同一个项目下添加插件

我正在尝试构建一个由多个项目聚合的 Scala 项目,其中之一是 sbt 插件。我想在同一父项目下的另一个子项目中使用这个插件,但我不太明白如何做到这一点。

我的项目根目录中的“build.sbt”是这样的:

lazy val plugin = project
  .in(file("sbt-Something"))
  .dependsOn(lib)
  .settings(common: _*)
  .settings(name := "My plugin",
    sbtPlugin := true)

lazy val examples = project
  .in(file("examples"))
  .dependsOn(lib, plugin)
  .settings(common: _*)
  .settings(name := "Examples")
Run Code Online (Sandbox Code Playgroud)

如何将plugin作为插件添加到项目中examples

scala sbt

3
推荐指数
1
解决办法
1351
查看次数

从plugins.sbt无法访问project / Dependencies.scala

我无法从内部引用对象依赖项plugins.sbt进行编译,从而得到错误error: not found: value Dependencies

/project/plugins.sbt
/project/Dependencies.sbt
Run Code Online (Sandbox Code Playgroud)

Depencies.scala 只是对象的集合

object Dependencies { 
  object Play {
    ...
    val sbtPlugin = "..." 
...
Run Code Online (Sandbox Code Playgroud)

同样,我使用它./build.sbt来添加libraryDependencies没有问题:

lazy val root = (project in file("."))
  .enablePlugins(PlayScala)
  .settings(libraryDependencies += Seq(
    Dependencies.Play.dependencies, ...
Run Code Online (Sandbox Code Playgroud)

感谢您的任何想法,我比什么都更好奇为什么build.sbt可以访问project文件夹资源

scala sbt playframework

3
推荐指数
1
解决办法
108
查看次数

标签 统计

sbt ×4

scala ×3

playframework ×1