lein尝试下载工件,即使它在本地存在

时间:2018-10-03 16:49:11

标签: maven clojure leiningen

lein run导致以下错误:

Could not find artifact foo:common:jar:10.11.0 in central (https://repo1.maven.org/maven2/)                                                                                            
Could not find artifact foo:common:jar:10.11.0 in clojars (https://clojars.org/repo/)

但是,在我的计算机上,文件~/.m2/repository/foo/common/10.11.0/common-10.11.0.jar存在。似乎lein试图从中央和clojars下载文件,即使它已经存在于我的计算机中。

这个特定的jar在maven Central或clojars中不存在,它存在于一个私有存储库中,只有在特定网络上时,我才可以访问。我现在不在该网络上,因此如果lein不尝试下载计算机上已经存在的文件,这将真的有帮助。

有人知道如何解决此问题吗?

更新

我得到的信息是,您可以使用lein在脱机模式下运行lein -o ...。但是,这导致了以下错误: The repository system is offline but the artifact foo:common:jar:10.11.0 is not available in the local repository.

2 个答案:

答案 0 :(得分:1)

lein可能正在检查更新,如您所诊断的那样,当您不在网络中时将无法访问更新。
在脱机模式下运行lein及其-o选项,它将跳过远程回购检查。

答案 1 :(得分:1)

上面听起来不错。另请参阅以下内容,您可能希望绕过整个Maven jar机制,并将jar放入./resources(至少是暂时地):

leiningen - how to add dependencies for local jars?

请仔细注意资源字符串的必需格式!

(defproject test-project "0.1.0-SNAPSHOT"
:description "Blah blah blah"
...
:resource-paths ["resources/Siebel.jar" "resources/SiebelJI_enu.jar"])

另请参见在该链接的另一个答案中进行本地maven安装的选项:

mvn deploy:deploy-file -Dfile=jaad-0.8.3.jar -DartifactId=jaad -Dversion=0.8.3 -DgroupId=jaad -Dpackaging=jar -Durl=file:maven_repository