は私がSBTについていくつか質問がある:「dependOn」句を使用するオプションがある理由SBT、カップルの質問:DEPENDSON
1)私は思ったんだけど。私はそれがプロジェクトに参加することを完全に理解しています。 あなたがProjectBのにPROJECTAのバージョンを指定することはできません。私は、このコードには好きではない何
lazy val projectA = Project("A", file("a"))
lazy val projectB = Project("B", file("b")).dependsOn(projectA)
。常に最新のprojectAの条件を集計します。すべてのサブプロジェクトが緊密に結合されている場合、アプリケーションをマルチプロジェクトに分割する理由は何ですか?
別のオプションがあります。サブプロジェクトをバージョン付きのバイナリリポジトリに公開し、それを設定に依存関係として追加することができます。このコードを使用しないのはなぜ
:カウスの
lazy val projectA = project("A", file("a"))
lazy val projectB = Project("B", file("b")).settings(libraryDependencies ++= Seq("groupOfA" %% "A" % "versionOfA"))
は、あなたは、このために、バイナリのリポジトリを持っている必要があります。しかし、それは問題ではありません。ネクサスをローカルにインストールすることができます(ほとんどすべてをサポートし、自由に使用できます)。あるいは、oss.sonatype.orgを使用してください。
2)この質問は最初の質問に関連していますが、なぜ「publishLocal」タスクがあるのか分かりません。私はSBTがIvy2リポジトリを使用していることを知っていますが、プロジェクトをnexusまたはoss.sonatype.orgに公開すると、maven2リポジトリに公開されます。この問題は、sbtがローカルで公開され、mavenからキャッシュされたことを検出したときに発生します。それはエラーを投げる。私はこれがsbtバグだと思う(https://github.com/sbt/sbt/issues/2687)。私はpublishLocalをもう使用しません。あなたのアプリケーションを複数のコンポーネントに分割したいのであれば、あなたのマシンにバイナリリポジトリをインストールしていないのはなぜか分かりません。
ありがとうございます –