3

それはうまくいかないようです。私がそれを望む主な理由は、「publishTo」や「credentials」などの共通設定を複数のマルチプロジェクト間で共有することです。

このようなプロジェクト構造を持つ

root
  |--L1
      |--L2

L1 で設定を定義して L2 で使用したいのですが、ルートで設定を定義して L1 と L2 で使用したいと考えています。

4

1 に答える 1

0

通常、 http://www.scala-sbt.org/release/docs/Getting-Started/Multiin ThisBuildで説明されているように、プロジェクトのルートにあるbuild.sbtファイルで指定することにより、ビルド レベルの設定を任意のサブプロジェクトと共有できます。 -Project.html#共有設定

しかし、それはすべてのプロジェクト間で価値を共有するためにのみ機能します。

あなたの場合、プロジェクトを次のように定義した場合Build.scala

import sbt._
import Keys._

object MyBuild extends Build {
    lazy val root = Project(id = "root",
                            base = file("."))

    lazy val L1 = Project(id = "L1",
                           base = file("L1"))

    lazy val L2 = Project(id = "L2",
                           base = file("L1/L2"))
}

publishToで定義したキー (例: )L1を再利用したい場合L2は、 に次の行を記述します。L2 build.sbt

publishTo <<= publishTo in L1

sbt でコマンドを使用して、inspectキー値とその設定方法を確認できます。

> projects
[info] In file:/Users/leo/src/project0/
[info]     L1
[info]     L2
[info]   * root
> project L2
[info] Set current project to L2 (in build file:/Users/leo/src/project0/)
> inspect publish-to
[info] Setting: scala.Option[sbt.Resolver] = Some(Repo1: https://repo1.org)
[info] Description:
[info]  The resolver to publish to.
[info] Provided by:
[info]  {file:/Users/leo/src/project0/}L2/*:publish-to
[info] Defined at:
[info]  /Users/leo/src/project0/L1/L2/build.sbt:1
[info] Dependencies:
[info]  L1/*:publish-to
[info] Reverse dependencies:
[info]  L2/*:publish-configuration
[info]  L2/*:other-resolvers
[info] Delegates:
[info]  L2/*:publish-to
[info]  {.}/*:publish-to
[info]  */*:publish-to
[info] Related:
[info]  L1/*:publish-to
[info]  */*:publish-to
[info]  {.}/*:publish-to
> 
于 2013-04-20T22:57:12.877 に答える