gpt4 book ai didi

scala - 如何在常见的sbt项目中下载sbt插件源jar?

转载 作者:行者123 更新时间:2023-12-02 02:28:57 24 4
gpt4 key购买 nike

使用sbt gen-idea或idea的自动导入功能在sbt项目中下载依赖项源jar是很自然的

但是如何下载我在 project/plugins.sbt 中声明的 sbt 插件源 jar

最佳答案

想法

IDEA应该已经做到了这一点*。

当您导入项目并在首选项>构建、执行、部署>构建工具> sbt中选中下载sbt源时,它将运行updateSbtClassifiers sbt 任务。

* 请阅读疑难解答部分,因为存在几个已知问题。

<小时/>

sbt

如上所述,您可以运行以下 sbt 任务:

sbt> updateSbtClassifiers

此命令有些特殊,因为它知道解析插件的分类器。它还使用该任务范围内的设置。请参阅有关 sbt/sbt#3432 的警告.

<小时/>

更远的路

重要的是要了解 sbt is recursive .

build.sbt 中声明的依赖项将用于正确的构建

project/plugins.sbt 中声明的依赖项将用于元构建

当您刚刚运行 updateSbtClassifiers 时,它会在正确的构建上运行它,但是依赖项实际上是针对元构建的。所以我说这个任务有点特殊。

另一种方法(可以实现不同的结果)是直接在元构建上运行 updateClassifiers 任务。

首先切换到元构建:

sbt> reload plugins

现在您已处于元构建运行中:

sbt:project> updateClassifiers

这将检索您的依赖项的srcdoc(对于某些插件来说,它实际上可能不会这样做)。运行 libraryDependencies 以查看元构建的依赖项。

回到正确的位置

sbt:project> reload return

要获得方便的多合一命令,请运行:

sbt> updateClassifiers;updateSbtClassifiers;reload plugins;updateClassifiers;updateSbtClassifiers;reload return
<小时/>

疑难解答

下载失败

您可能会在 sbt 日志中看到无法下载 srcdoc。例如:

[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 成功下载并解析 srcdoc IDEA 也可能无法附加它们。

这似乎是 sbt-structure plugin 中的错误。请参阅SCL-13619了解详情。

没有尝试下载

如果由于某种原因无法下载源代码(没有下载失败消息),请查看您的 .ivy2/exclude_classifiers 文件。我不完全确定这个文件的用途,但我确实知道 sbt 会排除这里的任何内容。

就我而言,它有很多我不想排除的东西,所以我删除了它,然后它就起作用了。删除的风险由您自行承担。

关于scala - 如何在常见的sbt项目中下载sbt插件源jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26725166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com