我正在clojure中启动lein new项目,并想使用goose文章提取库。不幸的是,我在任何公共(public)可用的maven存储库中都找不到该库的jar,因此我着手将其添加到本地maven存储库中。

在项目目录中,我复制了鹅 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")))}

[local/goose "2.1.6"]中的:dependencies。现在,当我执行lein deps时,我将goose-2.1.6.jar文件添加到了lib目录中,但是没有添加到goose的依赖项中。它们在鹅的pom.xml文件中列出。

除了在project.clj中列出鹅的依赖关系之外,还有什么方法可以解决此问题?

最佳答案

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

像这样安装:
lein localrepo coords target/goose-2.1.6.jar | xargs lein localrepo install
但是,仅此一项将无助于在 repo 中安装POM文件。您还应该运行以下命令:
cp pom.xml ~/.m2/repository/goose/goose/2.1.6/goose-2.1.6.pom
请注意,在此示例中,Goose将被安装为groupId=gooseartifactId=goose。如果愿意,您可以覆盖它,也许应该。

关于maven - 与Leiningen在Maven本地存储库中的依赖关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8738664/

10-10 06:14