问题标签 [pureconfig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

scala - Scala 中的 PureConfig ConfigLoader

我正在关注此链接以使用 pureconfig 加载数据 https://pureconfig.github.io/docs/overriding-behavior-for-case-classes.html。这是我的代码

当我运行它时,我收到此错误

这些是 pom 文件中的条目

0 投票
1 回答
762 浏览

scala - pureconfig 可以使用驼峰式配置吗

我正在使用 pureconfig pureconfig lib 和pureconfig-yaml模块。一切都像一个魅力,我唯一的问题是我必须将属性名称从骆驼案例转换为烤肉串案例。

来自现实世界的痛苦例子:

我不想维护 2 种不同的案例类型并考虑如何从一种转换为另一种,我希望拥有纯复制和粘贴 scala 类 - > yaml 配置解决方案。我有机会在双方都实现骆驼案吗?

编辑:

我围绕 pureconfig lib 创建了一个包装器,它通过环境变量执行一些配置覆盖。客户应以下列方式使用包装器:

然而,这还不够,客户需要提供 2 个导入:

如果包装器 ( ConfigLoader) 可以处理导入并且它们不会由客户负责,那就太好了。此外,导入被 IntelliJ IDE 识别为“未使用”,当触发“优化导入”或启用“动态优化导入”时,导入会自动删除。根据这个线程(接受的答案对我不起作用),我们可以使用“将导入标记为始终使用...”来解决这个问题,但这不是一个理想的解决方案,因为其他团队成员必须为每个项目做同样的事情或者我们应该将 .idea 提交给 VCS(我想避免)。

我附上了我的测试截图(依赖关系pureconfig.generic.auto._已经被标记为一直使用): 在此处输入图像描述

0 投票
1 回答
1440 浏览

scala - SBT 在编译期间抛出 StackOverflowError

我的环境的设置是 SBT 1.3.0-RC1、Scala 2.12.8 和 Java 1.8.0_212。SBT 在 期间抛出异常compile

运行命令行 SBT 时发生相同的错误。我该如何解决?谢谢

更新 #1

TL;DR增加 SBT 线程堆栈大小,即 SBT_OPTS="-Xss2m" sbt clean compile

我的项目使用PureConfig并且编译器很重。增加内存占用会清除编译器溢出异常。举个例子,我的案例类在其参数中有一个ListOption嵌套的案例类。巧合的是,嵌套案例类在其构造函数中有一个List或,Option

这将导致编译器抛出 StackOverflowException。但是随着 SBT 的额外内存,编译将通过。

0 投票
1 回答
259 浏览

json - 如何让 PureConfig 将 JSON 反序列化为 JValue 字段?

我的部分配置包含任意 JSON。我想将该 JSON 反序列化为 JValue 以供以后处理。

但是,ConfigSource.load抱怨type找不到密钥。

测试代码:

输出:

如何让 PureConfig 反序列化为 JValue?

更新:

我将 Gagandeep 的答案改编为我的旧版 PureConfig:

它改变了错误消息,我认为这是进步:

似乎 PureConfig 在某处期望一个字符串,但找到了一个对象。我不确定断开连接在哪里。我cur.asString用来确保该项目以其适当的类型返回。

更新 2:

这可能不是最强大的解决方案,但它适用于我的测试用例:

0 投票
0 回答
183 浏览

scala - PureConfig:是否可以将文档添加到生成的配置文件中

我正在评估PureConfig以读取和写入配置文件。

在编写配置文件时,它看起来像:

是否可以拥有而不是# hardcoded value实际的文档?

因此,例如我的case class样子:

然后是这个配置文件:

0 投票
0 回答
57 浏览

scala - PureConfig:我无法读取 sbt 插件中的 reference.conf

我创建了一个sbt Plugin,它从reference.conf.

作品中的测试Plugin(可以阅读`reference.conf)。

Wenn 我发布了插件,reference.conf在 Jar 的根目录下。

但是,当运行应该使用它的 SBT 任务时,reference.conf它不会得到它。

我用:

重新加载SBT 控制台没有帮助。

这是 SBT 插件的限制还是我错过了什么?

0 投票
3 回答
1658 浏览

scala - TypeSafeConfig 和 PureConfig - 从配置中加载 Map[String, Any] 值

我正在尝试Map[String, Any]从配置文件中加载一个。目前是这样写的

Pureconfig 无法将此配置作为Map[String, Any]. 它仅在替换Any为某些严格类型时才有效,但我想要比这更大的灵活性。

有没有办法解决?

0 投票
1 回答
582 浏览

java - 将任意类型安全配置写入 hocon 文件的标准化方法?

在一个 Scala 研究应用程序中,我使用 PureConfig 的ConfigSource.file()方法加载了一个 hocon 文件,它代表了研究实验的默认配置。我用它来动态构建一批变体。在对特定的实验变体进行一些修改后,我使用pureconfig的自动解析器将配置解析为case class结构。

此时,我想将修改后的 Config 作为 hocon 文件保存到我的实验目录中,这样我以后可以轻松地重新创建这个实验。

我一直在查看 typesafe config README.md并没有看到任何关于此的内容。显然,我可以编写一个函数来将配置树漂亮地打印为 hocon 格式,但是,有没有办法隐藏在类型安全配置 API 中的某个地方?

0 投票
2 回答
689 浏览

scala - 在 pureconfig 中表示 Either

我有一个这样的 HOCON 配置:

我想用pureconfig解析它。我如何表示 URL 可以是字符串或多个 url 的映射,每个 url 都有一个键?

我试过这个:

但它导致“预期类型 OBJECT。找到 STRING。”

我知道 pureconfig 支持Option. 我发现没有提到支持Either,是不是意味着它可以用其他东西代替?

0 投票
1 回答
586 浏览

apache-flink - Apache Flink 和 Pureconfig - 在作业启动时传递 java 属性

我想将 pureconfig 与 apache Flink 一起使用。

开始工作时如何传递其他 java 属性?

我尝试通过:-yD env.java.opts="-Dconfig.file='config/jobs/twitter-analysis.conf'"参数传递它,但它不被接受:

https://github.com/geoHeil/streaming-reference/blob/5-basic-flink-setup/Makefile#L21


-yD env.java.opts="-Dconfig.file='config/jobs/twitter-analysis.conf'"

并且主类在尝试从配置文件中实例化配置时失败。

请注意,完整的参考资料可在https://github.com/geoHeil/streaming-reference获得。您可以通过以下方式重现上述错误:

并且应该看到以下异常:

在 Spark 中,此属性称为:extraJavaOptions

编辑

即,我尝试使用Flink 的方法:How to pass extra JVM options to TaskManager and JobManager,但到目前为止它不适用于当前版本的 Flink (1.10.1)

此属性相当于spark.driver.extraJavaOptionsApache Spark 中的属性。而且我相信,它需要传递给工作经理。

如果我阅读文档-yD,则仅适用于 YARN。但我也需要一些在本地也可以使用的东西。

更多相关文章: