pureconfig 无法导出具有许多属性的案例 class
pureconfig can't derive case class with many attributes
我无法推导出具有许多属性的案例 class。奇怪的是,输出在 SBT 和 gradle 之间变化。在 https://github.com/geoHeil/pureconfig-issue 找到了一个最小的可重现示例,下面还列出了代码:
sbt
sbt compile
[error] Caused by: java.lang.ClassNotFoundException: scala.runtime.LazyRef
gradle
./gradlew compileScala
ould not find implicit value for parameter reader: pureconfig.ConfigReader[Foo.XXX]
pureconfig.ConfigReader[XXX]
代码为:
object Foo extends App {
println("here")
case class MyNestedThing(foo: String)
case class XXX(
a: String,
b: String,
c: String,
d: String,
e: String,
f: String,
g: String,
h: String,
i: String,
j: String,
k: String,
l: String,
m: String,
n: String,
o: String,
p: String,
q: String,
r: String,
s: String,
t: String,
u: String,
v: String,
w: String,
x: String,
y: String,
z: String,
aa: String,
ab: String,
ac: String,
ad: String,
ae: String,
af: String,
ag: String,
ah: String,
ai: String,
aj: String,
ak: String,
al: String,
am: String,
an: String,
ao: String,
ap: String,
aq: String,
someLonglllllllllllllllllllllllllll: String,
so1meLonglllllllllllllllllllllllllll: String,
som2eLonglllllllllllllllllllllllllll: String,
ar: MyNestedThing,
as: MyNestedThing
)
pureconfig.ConfigReader[XXX]
}
虽然使用时效果很好:
object Foo extends App {
println("here")
case class MyNestedThing(foo: String)
case class XXX(
a: String,
b: String,
som2eLonglllllllllllllllllllllllllll: String,
ar: MyNestedThing,
as: MyNestedThing
)
pureconfig.ConfigReader[XXX]
}
编辑
有趣的是,我在 scala 版本中有一个混淆,所以当将其修复为所有 2.11 SBT 时编译正常,但是 gradle 仍然显示相同的问题。
当为 scala 编译器提供更多内存时,它工作正常。
https://github.com/pureconfig/pureconfig/issues/391
tasks.withType(ScalaCompile) {
configure(scalaCompileOptions.forkOptions) {
jvmArgs = ["-Xss2m"]
}
}
我无法推导出具有许多属性的案例 class。奇怪的是,输出在 SBT 和 gradle 之间变化。在 https://github.com/geoHeil/pureconfig-issue 找到了一个最小的可重现示例,下面还列出了代码:
sbt
sbt compile
[error] Caused by: java.lang.ClassNotFoundException: scala.runtime.LazyRef
gradle
./gradlew compileScala
ould not find implicit value for parameter reader: pureconfig.ConfigReader[Foo.XXX]
pureconfig.ConfigReader[XXX]
代码为:
object Foo extends App {
println("here")
case class MyNestedThing(foo: String)
case class XXX(
a: String,
b: String,
c: String,
d: String,
e: String,
f: String,
g: String,
h: String,
i: String,
j: String,
k: String,
l: String,
m: String,
n: String,
o: String,
p: String,
q: String,
r: String,
s: String,
t: String,
u: String,
v: String,
w: String,
x: String,
y: String,
z: String,
aa: String,
ab: String,
ac: String,
ad: String,
ae: String,
af: String,
ag: String,
ah: String,
ai: String,
aj: String,
ak: String,
al: String,
am: String,
an: String,
ao: String,
ap: String,
aq: String,
someLonglllllllllllllllllllllllllll: String,
so1meLonglllllllllllllllllllllllllll: String,
som2eLonglllllllllllllllllllllllllll: String,
ar: MyNestedThing,
as: MyNestedThing
)
pureconfig.ConfigReader[XXX]
}
虽然使用时效果很好:
object Foo extends App {
println("here")
case class MyNestedThing(foo: String)
case class XXX(
a: String,
b: String,
som2eLonglllllllllllllllllllllllllll: String,
ar: MyNestedThing,
as: MyNestedThing
)
pureconfig.ConfigReader[XXX]
}
编辑
有趣的是,我在 scala 版本中有一个混淆,所以当将其修复为所有 2.11 SBT 时编译正常,但是 gradle 仍然显示相同的问题。
当为 scala 编译器提供更多内存时,它工作正常。 https://github.com/pureconfig/pureconfig/issues/391
tasks.withType(ScalaCompile) {
configure(scalaCompileOptions.forkOptions) {
jvmArgs = ["-Xss2m"]
}
}