pureconfig не может получить класс case со многими атрибутами
Я не могу получить класс дела со многими атрибутами. Странно, но выходной сигнал варьируется между 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 все еще показывает ту же проблему.
1 ответ
Решение
Когда вы даете больше памяти компилятору Scala, он работает нормально. https://github.com/pureconfig/pureconfig/issues/391
tasks.withType(ScalaCompile) {
configure(scalaCompileOptions.forkOptions) {
jvmArgs = ["-Xss2m"]
}
}