假设我在 leiningen 项目中使用了一个库,托管在 Clojars 上。我遇到了一个错误。我在 Github 上 fork 项目,并修复了错误。怎么办?
在我的 leiningen 项目中使用我的库版本最合适的方法是什么?
PS我来自Ruby世界,所以我显然已经想到了Bundler......
我的过程:
当您只是在那里挖掘以修复错误时,很容易将大量“样式修复”应用于项目。如果您想这样做,请尝试与项目维护者合作,因为他们长期参与其中,并且对代码投入更多情感。
如果您只想在本地使用修改后的版本,您可以按照 Arthur 的流程一直到“测试我的程序”步骤。如果您正在开发一个应用程序,该应用程序将与其依赖项一起打包以进行部署(lein uberjar
例如,使用 ),这很好。您可能还想使用 Leiningen 的检出功能来并行处理您的主项目和修改后的库(记录在Leiningen 的教程中——链接到当前 2.2.0 版本的版本)。
如果您希望修改后的版本可以在公共 Maven 存储库中访问,则可接受的做法(实际上,对于这个特定用例而不是其他用例鼓励)是发布具有原始工件 id 和组 id 的项目版本的org.clojars.{your-clojars-account-name}
。
例如,如果您想发布您自己的项目版本,其中foo
包含,您可以将其形式更改为发布前。然后你可以在你的项目中依赖。(defproject foo "upstream-version" ...)
project.clj
defproject
(defproject org.clojars.kendallb/foo "your-version" ...)
[org.clojars.kendallb/foo "your-version"]
这样就不会与原始人工制品 id 或任何其他分叉发生任何冲突。
至于将您的更改合并到上游,亚瑟的过程是完全合理的。