相关疑难解决方法(0)

尽管发布成功,但未指定"用于发布的存储库"

Settings.scala我的大型SBT项目中有一个单独的文件,其中包含以下内容:

lazy val commonSettings = Seq(
  // ... lots of settings
  publishTo :=
    Some("Sonatype Nexus Repository Manager" at
      "http://my.company.nexus/content/repositories/releases/"),
  credentials += Credentials(Path.userHome / ".ivy2" / ".credentials"),
  publishMavenStyle := true,
  crossScalaVersions := Seq("2.10.6"),
  // ... lots of other settings
)
Run Code Online (Sandbox Code Playgroud)

现在我的所有项目build.sbt都定义如下:

lazy val aProject =
  project.in(file("somewhere/aProject")).
    settings(commonSettings).
    settings(
      // project specific settings
    )
Run Code Online (Sandbox Code Playgroud)

当我现在这样做

sbt "+ publish"
Run Code Online (Sandbox Code Playgroud)

我看到我的所有工件都已发布,当我查看我的Nexus时,他们就在那里,我也可以将它们用作依赖项等,因此发布工作,但我最后得到以下内容:

java.lang.RuntimeException: Repository for publishing is not specified.
    at scala.sys.package$.error(package.scala:27)
    at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
    at sbt.Classpaths$$anonfun$getPublishTo$1.apply(Defaults.scala:1470)
    at scala.Option.getOrElse(Option.scala:120)
    at sbt.Classpaths$.getPublishTo(Defaults.scala:1470)
    at sbt.Classpaths$$anonfun$59.apply(Defaults.scala:1150)
    at …
Run Code Online (Sandbox Code Playgroud)

scala nexus sbt

16
推荐指数
2
解决办法
7407
查看次数

与sbt中的`{.}/*:name`和`*/*:name`不同?

从一些sbt文档(例如范围),我看到:

{.}/*:name
Run Code Online (Sandbox Code Playgroud)

意思nameentire build(name in ThisBuild用来定义它)

*/*:name
Run Code Online (Sandbox Code Playgroud)

意思nameglobal project(name in Global用来定义它)

(PS:我忽略了配置部分*:)

但是,我仍然不知道它们之间有什么区别,它们对我来说似乎完全一样.

我能用一个而不是另一个做任何事吗?

scope global sbt

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

标签 统计

sbt ×2

global ×1

nexus ×1

scala ×1

scope ×1