如何将lein localrepo的依赖项推送到clojars(processing.org jars)

时间:2014-01-07 11:22:13

标签: clojure dependencies leiningen clojars

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

3 个答案:

答案 0 :(得分:1)

如果此信息http://blog.rueedlinger.ch/2012/09/use-github-as-maven-remote-repository/对您使用github repo作为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的dev [@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

祝你好运

答案 1 :(得分:0)

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

以下是重新包装罐子和瓶子的更一般的要点。将其上传到Clojars:https://groups.google.com/forum/#!topic/clojure/KxwhVg7L_gA

答案 2 :(得分:0)

感谢您的帮助和链接到目前为止。这是我得到的:

我取得了一些成功 - 减去了签罐和poms的能力。

我必须承认这有点痛苦。这是过程。必须有一种自动化的方法吗?

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

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

    <groupId>libgroup</groupId>

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

    1. 手动添加lib.pom 中缺少的部分,否则clojars抱怨:
    2. <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 > lib.pom.md5
      2. sha1sum lib.pom > lib.pom.sha1
      3. scp lib* clojars@clojars.org:
      4. 这里他们在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

        这里他们穿着斗篷:

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

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

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

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

        2. 我的罐子和poms没有签名会是浪费还是交易破坏?我似乎无法弄清楚如何签名。我在clojar.org上安装了SSH和PGP,scp运行得很好。