假设我在一个leiningen项目中使用一个库,该库托管在Clojars上。然后我就遇到了一个虫子。我在Github上分叉了这个项目,并修复了这个bug。这次又是什么?
在我的leiningen项目中使用我的库版本最合适的方式是什么?
另外,我来自Ruby世界,所以我的脑海中显然有Bundler……
发布于 2013-07-06 07:54:11
如果您只希望修改后的版本在本地可用,则可以按照Arthur的流程执行“测试我的程序”步骤。如果您正在处理一个应用程序,并将其与其依赖项打包在一起以进行部署(例如使用lein uberjar ),那么这是很好的。您可能还希望使用Leiningen的签出功能来并行处理您的主项目和修改后的库(在Leiningen's tutorial中提供了文档--链接到当前2.2.0版本的版本)。
如果您希望修改后的版本可以在公共Maven库中访问,那么可以接受的做法(实际上,在这个特定用例中鼓励使用,而不是其他用例)是发布一个具有原始artefact和组id org.clojars.{your-clojars-account-name}的项目版本。
例如,如果您希望发布自己的项目foo版本,并且在其project.clj中包含(defproject foo "upstream-version" ...),则需要在发布之前将其defproject表单更改为(defproject org.clojars.kendallb/foo "your-version" ...)。然后你可以在你的项目中依赖于[org.clojars.kendallb/foo "your-version"]。
这样既不会与原始artefact冲突,也不会与任何其他分支冲突。
至于将你的改变合并到上游,Arthur的过程是完全合理的。
发布于 2013-07-06 07:31:22
我的进程:
在github
“将我的分支添加到本地存储库
>H19cd到我的项目(使用dependency)
a pull request to the my my
to the my porject.clj to depend my code a pull request to the my my
a pull request to the my my porject.clj to the my my
a pull request to the M将dependency
当你只是在那里挖掘以修复错误时,Tt很容易将大量的“样式修复”应用到项目中。如果你想这样做,一定要试着与项目维护者一起工作,因为他们是长期从事这项工作的,并且在代码中投入了更多的情感。
https://stackoverflow.com/questions/17497937
复制相似问题