与leiningen在maven本地存储库中的依赖关系

时间:2012-01-05 06:47:14

标签: maven clojure leiningen

我在clojure中启动lein new项目,并希望使用goose文章提取库。不幸的是,我无法在任何公开的maven存储库中找到该库的jar,因此我开始将其添加到本地maven存储库。

在项目目录中,我复制了goose jar及其pom.xml文件并执行了

mkdir maven-repo
mvn install:install-file -Dfile=goose-2.1.6.jar -DartifactId=goose -Dversion=2.1.6 \
    -DgroupId=local -Dpackaging=jar -DlocalRepositoryPath=maven-repo -DpomFile=pom.xml

并将以下内容添加到project.clj

:repositories {"local" ~(str (.toURI (java.io.File. "maven-repo")))}
{p}和[local/goose "2.1.6"]中的:dependencies。现在,当我执行lein deps时,我将goose-2.1.6.jar文件添加到lib目录,但不是goose的依赖项。它们列在鹅的pom.xml文件中。

除了在我的project.clj中列出goose的依赖关系之外,我有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:12)

您可以使用lein-localrepo而不是冗长的mvn命令: https://github.com/kumarshantanu/lein-localrepo

像这样安装:

lein localrepo coords target/goose-2.1.6.jar | xargs lein localrepo install

然而,仅凭这一点无助于在回购中安装POM文件。你还应该运行这个:

cp pom.xml ~/.m2/repository/goose/goose/2.1.6/goose-2.1.6.pom

请注意,在此示例中,Goose将安装为groupId=gooseartifactId=goose。如果你愿意,你可以覆盖它,也许你可以。