【问题标题】:How to push a lein localrepo of dependencies to clojars (processing.org jars)如何将依赖项的 lein localrepo 推送到 clojars (processing.org jars)
【发布时间】:2014-01-25 01:23:50
【问题描述】:

Processing (processing.org) 的基本库 jar 不在 clojars 或 maven 上。我有一个与 clojure 相关的项目,并想以我的用户名将 jar 上传到 clojars。一次将它们放入我的 .m2 文件夹中有点乏味。我将需要能够通过 clojars 访问它们,以便其他人可以帮助我完成我的项目。如何上传这些依赖项?

lein deploy clojars 不上传依赖项 - 所有处理库 jar。

我的处理localrepo也在github上,存储在这里:

https://github.com/originalsurfmex/originalsurfmex_m2/tree/master/repository/processing

【问题讨论】:

标签: clojure dependencies leiningen clojars


【解决方案1】:

如果此信息http://blog.rueedlinger.ch/2012/09/use-github-as-maven-remote-repository/ 对您使用 github 存储库作为 maven 存储库有用,那么您只需在 project.clj 上声明此 github 存储库。 你可以在这里看到一个例子https://github.com/technomancy/leiningen/blob/master/sample.project.clj#L76

  :repositories [["your-id" "https://github.com/originalsurfmex/originalsurfmex_m2/tree/master/repository"]]

更新: 你是对的,上面的评论并没有完全回答你的问题,所以我会再试一次:)

那么,如果依赖项还没有在 clojars 中,如何将 lib 推送到 clojars? 我从来没有将 lib 推送到 clojars,所以下一个只是想法,但是,我一直在一个真实的已发布案例(quil/quil)中搜索相同的问题,这些是我的结论:

在 quil project.clj 中,“有问题的”依赖项位于“手工制作的”clojars 中。如果你查看 ~/.m2 本地存储库,你会发现它们都以“org/clojars/”而不是“org.processing”为前缀, 将这些依赖项推送到 clojars 的开发人员 [@samaaron] 必须按依赖项创建一个单独的项目,并对其进行配置:

<dependency>
  <groupId>org.clojars.processing-core</groupId>
  <artifactId>org.processing.opengl</artifactId>
  <version>1.5.1</version>
</dependency>

并把每一个推到clojars。

我认为,如果您查看本地 maven repo 上的这些 quil 依赖项之一,您将了解您必须遵循的方式(基本上:拥有一个 java 项目,下载源代码,配置 pom .xml 和upload java code to clojars)

祝你好运

【讨论】:

  • 感谢七巧板。我只是按照你的建议将我的 github 存储库添加到:repositories,没有任何额外的配置。这确实很好用。唯一的问题是它没有回答我最初的问题。我希望将本地依赖项推送到 clojars 并不难。
【解决方案2】:

如果您仍在使用 Processing 1.5.1,您可以在 Clojars 上找到所有需要的 jar,但是在这种情况下,您也可以将 Quil 拉入您的项目,然后拉入所有其他重新打包的 Processing jars(包括 OpenGL 的原生库)。

以下是重新打包 jar 并将其上传到 Clojars 的一些更通用的要点:https://groups.google.com/forum/#!topic/clojure/KxwhVg7L_gA

【讨论】:

  • 哇!从没想过我会直接从毒物库中获得帮助。我正在尝试导入和使用最新的 2.1 处理库,这些库在 Quil 项目中尚不可用。感谢您对社区做出的惊人贡献。
  • :) 是的,最近几个月,Quil 的开发速度似乎放缓了,我真的不知道人们是否会移植/包装新的 v2 东西(尽管它真的不应该很难全部)。
【解决方案3】:

感谢您迄今为止的帮助和链接。这是据我所知:

我已经取得了一些成功 - 减去了签署 jars 和 poms 的能力。

我不得不承认这有点痛苦。这是过程。必须有一种自动化的方式来做到这一点吗?

转到您的 .m2/repository/group/library/version/ 文件夹

  1. md5sum lib.jar &gt; lib.jar.md5
  2. sha1sum lib.jar &gt; lib.jar.sha1
  3. 更改 lib.pom 中的 groupId

<groupId>libgroup</groupId>

<groupId>org.clojars.username.libgroup</groupId>

  1. 手动在 lib.pom 中添加缺失的部分,否则 clojars 会抱怨:

<description>processing-libs</description> <url>http://www.processing.org</url> <scm> <tag>something relevant?</tag> <url>somewhere relevant?</url> </scm> <licenses> <license> <name/> <url/> <distribution/> </license> </licenses> <developers> <developer> <id/> <name/> <email/> </developer> </developers> <repositories> <repository> <id>clojars.org</id> <url>http://clojars.org/repo/</url> </repository> </repositories>

  1. md5sum lib.pom &gt; lib.pom.md5
  2. sha1sum lib.pom &gt; lib.pom.sha1
  3. scp lib* clojars@clojars.org:

它们在 github 中(当然不包括 md5 和 sha1 文件):

https://github.com/originalsurfmex/originalsurfmex_m2/tree/master/repository/processing/core/2.1

https://github.com/originalsurfmex/originalsurfmex_m2/tree/master/repository/processing/gluegen-rt/2.1

它们在clojars中:

https://clojars.org/org.clojars.originalsurfmex.processing/core

https://clojars.org/org.clojars.originalsurfmex.processing/gluegen-rt

在我继续添加所有这些库之前,我有两个问题:

  1. 我的错误污染了 clojars.org --> https://clojars.org/users/originalsurfmex

  2. 我的 jar 和 poms 没有签名会是浪费还是破坏交易?我似乎无法弄清楚如何签署它们。我在 clojar.org 上设置了 SSH 和 PGP,并且 scp 运行良好。

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2018-02-19
    • 2014-07-27
    • 2013-07-09
    • 1970-01-01
    相关资源
    最近更新 更多