我有一個使用sbt
構建的scala項目。我想導入另一個項目,這個項目也是使用sbt
構建的,並且在我的機器上是本地的。當dependOn一個本地項目時,無法解析依賴關係
我的項目結構如下:
my-project/build.sbt
my-project/external-project/
my-project/external-project/build.sbt
my-project/external-project/...
my-project/src/test
my-project/src/main
my-project/...
我build.sbt
看起來是這樣的:
lazy val root = Project("my-project", file("."))
.dependsOn(RootProject(file("./external-project/")))
.settings(
...
)
,這就是sbt "compile"
給我
[warn] Binary version (2.11) for dependency org.scala-lang#scala-library;2.11.8
[warn] in my-project#my-project_2.10;0.1-SNAPSHOT differs from Scala binary version in project (2.10).
[info] Resolving externalproject#externalproject.10;0.1 ...
[warn] module not found: externalproject#externalproject.10;0.1
[warn] ==== local: tried
[warn] /home/martin/.ivy2/local/externalproject/externalproject_2.10/0.1/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/externalproject/externalproject_2.10/0.1/externalproject_2.10-0.1.pom
[info] Resolving com.github.scopt#scopt_2.11;3.5.0 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: externalproject#externalproject_2.10;0.1: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Unresolved dependencies path:
[warn] externalproject:externalproject_2.10:0.1
[warn] +- my-project:my-project_2.10:0.1-SNAPSHOT
外部項目是git子模塊。這兩個項目都不以任何方式使用Maven。
我只是想讓my-project
中的文件能夠導入external-project
中的scala文件,但我無法讓它工作。我究竟做錯了什麼?我需要重塑我的項目嗎?
你可以在文件(「external-project」)上替換'RootProject(file(「./ external-project /」))''然後再試一次嗎? – tkachuko
我最初嘗試過;唯一的區別是不推薦在對象引用中使用/...../my-project/build.sbt:4:warning:method fileToRef:在調用RootProject時顯式包裝文件。 .dependsOn(file(「./ fpga-tidbits /」))'寫在我發佈爲輸出的東西上面。 – MartinHaTh
你也可以分享'external-project'的項目定義嗎? – tkachuko