我从GitHub克隆了一个存储库到我的本地机器,更改它以满足我的需求,现在我将在我的项目中使用它。我想我必须使用.jar
文件。但是,没有这样的文件。
我必须自己生成吗?
另外,我该如何参考呢?我现在不想将其复制到/lib
文件夹,因为我一直在处理克隆的项目。我发现我必须使用它:
resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository"
但是,我没有文件build.sbt
,我只有一个标题为Build.scala
的普通scala文件,并且无法使用上面的代码。
另外,它说/.m2/repository
,但它如何知道.jar
文件在此存储库中的位置?
答案 0 :(得分:4)
由于该项目来自GitHub,我认为它是一个git项目。解决方案是使用RootProject
和git URI作为对克隆git项目的引用。
假设您将项目克隆到/Users/jacek/sandbox/so/sbt-git/git-repo
(就像我在Can SBT refresh git uri dependency (always or on demand)?中所做的那样)。
执行git log
以找出您要引用的最后一个提交,并在SBT中引用项目的git URI中使用它 - 在dependsOn
中。
鉴于最后一次提交是a221379c7f82e5cc089cbf9347d473ef58255bb2
,build.sbt
可能如下所示:
lazy val v = "a221379c7f82e5cc089cbf9347d473ef58255bb2"
lazy val g = RootProject(uri(s"git:file:///Users/jacek/sandbox/so/sbt-git/git-repo/#$v"))
lazy val root = project in file(".") dependsOn g
如git fetch
中所述,使用git merge
后跟{{1}}更新后,也可以省略提交ID并跟上引用的git项目中的开发。