在 `--extra` 中使用 Julia 包

问题描述 投票:0回答:1

在处理 Julia 包时,我们可以通过添加 ]add --extra Foo 来声明某个依赖项是

not
面向用户的。这会将
Foo
放入
[extras]
Project.toml
部分。

但是,在测试时我遇到了一个奇怪的问题:

julia --project=.
(Bar) pkg> add --extra JuliaFormatter
julia> using JuliaFormatter
 │ Package JuliaFormatter not found, but a package named JuliaFormatter is available from a registry.
 │ Install package?
 │   (Bar) pkg> add JuliaFormatter
 └ (y/n/o) [y]:

如何在启用

extras
的情况下激活我的项目?

julia
1个回答
0
投票

[extras]
本身是没有用的。您还必须指定
[targets]
extras
用于指定子目录的依赖关系,其中包本身使用这些依赖关系。在下面的示例 TOML 中:

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]

Test
被指定为 子目录、目标、
test/
的依赖项。

这记录在 https://pkgdocs.julialang.org/v1/creating-packages/#target-based-test-specific-dependency

您可以为

test
build
目标指定任意多个依赖项:

[extras]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
XUnit = "3e3c03f2-1a94-11e9-2981-050a4ca824ab"

[targets]
test = ["Aqua", "JET", "XUnit", "Test"]

但该功能不够通用,无法支持任意目标。请参阅此功能请求,它准确描述了您的需求,以及此相关功能提案

© www.soinside.com 2019 - 2024. All rights reserved.