使用sbt gen-idea或idea的自动导入功能下载sbt项目中的依赖项源代码jars是很自然的
但是如何下载我在project/plugins.sbt中声明的sbt插件源码jar呢?
发布于 2017-11-17 05:49:54
IDEA
IDEA应该已经做到了*。
当您导入一个项目并在Preferences > Build,Execution,Deployment > Build Tools > sbt中签入Download sbt sources时,它将运行updateSbtClassifiers sbt任务。
*请阅读Troubleshooting部分,因为这有几个已知问题。
sbt
如上所述,您可以运行以下sbt任务:
sbt> updateSbtClassifiers这个命令有点特殊,因为它知道为插件解析分类器。它还使用该任务范围内的设置。请参阅有关sbt/sbt#3432的警告。
Longer
理解sbt is recursive是很重要的。
在build.sbt中声明的依赖项将用于正确的构建。
在project/plugins.sbt中声明的依赖项将用于元构建。
当您只运行updateSbtClassifiers时,它会在正确的构建上运行它,但是依赖项实际上是元构建的。这就是为什么我说这项任务有点特殊。
另一种方法(可以实现不同的结果)是直接在元构建上运行updateClassifiers任务。
首先切换到meta-build:
sbt> reload plugins现在您正在运行meta-build:
sbt:project> updateClassifiers这将检索您的依赖项的src和doc (对于某些插件,它实际上可能不会这样做)。运行libraryDependencies查看元构建的依赖项。
回到正题
sbt:project> reload return build run:Troubleshooting
下载失败
您可能会在sbt日志中看到它无法下载src或doc。例如:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: rocks.muki#sbt-graphql;0.5.0!sbt-graphql.jar(doc)
[warn] :: rocks.muki#sbt-graphql;0.5.0!sbt-graphql.jar(src)
[warn] ::::::::::::::::::::::::::::::::::::::::::::::如果你看上面,你会看到它尝试过的所有解析器。您应该会看到一个用于sbt-plugin-releases的插件,它是大多数sbt插件发布到的位置。有关更多详细信息,请参阅predefined resolvers。
如果您没有看到它尝试了sbt-plugin-releases,那么您很有可能遇到了sbt/sbt#3432。
updateSbtClassifiers未使用正确的解析器。将以下内容添加到build.sbt文件中:
updateSbtClassifiers / dependencyResolution := IvyDependencyResolution((updateSbtClassifiers / ivyConfiguration).value)未附加的源
即使updateSbtClassifiers成功下载并解析,src和doc IDEA也可能不会附加它们。
这似乎是sbt-structure plugin中的一个错误。详情请参见SCL-13619。
不尝试下载
如果由于某种原因,这不能下载源代码(没有失败的下载消息),那么可以查看您的.ivy2/exclude_classifiers文件。我不完全确定这个文件是用来做什么的,但我知道sbt会排除这里的任何内容。
在我的例子中,它有很多我不想排除的东西,所以我删除了它,然后它就起作用了。删除,风险自负。
发布于 2014-11-05 05:35:30
您可以使用reload plugins进入包含插件的项目。如果你输入libraryDependencies,你可以(例如)看到插件依赖的列表。使用reload return返回到您的正常sbt控制台。
更多信息请点击此处:Commands for managing the build definition
https://stackoverflow.com/questions/26725166
复制相似问题