谁能告诉我lein deps是如何工作的?如果雷音发现的依赖,这是一个项目所需要的版本,在〜/ .m2目录下,将雷音仍然再次下载相同的包?
Art*_*ldt 12
让我们将其分解为几个问题,我将尝试简要介绍每个问题:
有人告诉我lein deps是如何工作的吗?
"deps"目标的目标是确保运行此项目所需的每个依赖项都可以在您的本地maven仓库中使用.简而言之,它使用需要在类路径上运行的jar来填充〜/ .m2/....
如果lein在〜/ .m2中找到依赖项,即项目所需的版本,lein是否仍然会再次下载相同的包?
不,它只根据需要而不是在本地仓库中下载.默认情况下,虽然lein 仅在24小时内检查一次新的快照版本,但您可以通过运行"lein -U deps"更频繁地执行此操作
一旦lein deps完成并且包可用,那么lein可以通过将每个所需jar的位置作为类路径参数传递来启动jvm,如下所示:
java -classpath /project/path/test:/project/path/src:
/project/path/dev-resources:/project/path/resources:
/project/path/target/classes:
/home/ubuntu/.m2/repository/org/apache/maven/maven-model-builder/3.0.4/maven-model-builder-3.0.4.jar:
/home/ubuntu/.m2/repository/org/apache/maven/maven-repository-metadata/3.0.4/maven-repository-metadata-3.0.4.jar:
/home/ubuntu/.m2/repository/org/apache/maven/wagon
:/home/ubuntu/.m2/repository/org/clojure/tools.analyzer/0.1.0-beta12/tools.analyzer-0.1.0-beta12.jar:
/home/ubuntu/.m2/repository/org/tcrawley/dynapath/0.2.3
... lots more paths here ...
Run Code Online (Sandbox Code Playgroud)
很久以前lein曾经将它们复制到项目中的本地文件夹中,它不再这样做了,你可以安全地忽略任何告诉你运行"lein clean"的文档(尽管如果你正在尝试它也不会受到影响)在AOT编译后清除奇怪的故障)