Writing this for users who have future issues like me. Libraries that are built on the Typesafe config typically use their own reference.conf
files and refer to certain configuration keys. When building a fat JAR using the Gradle shadowJAR
plugin, these files aren't included.
Dependencies like Spray and Akka throw errors when the fat JAR attempts to run. Errors look like:
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'spray'
Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka'
How to fix this? Check the answer below.
Simply:
shadowJar {
append('reference.conf')
}
See Controlling JAR Content Merging
The resulting fix was to add the following to the build.gradle
file:
shadowJar {
transform(com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer) {
resource = 'reference.conf'
}
}
Solution was found here:http://www.sureshpw.com/2015/10/building-akka-bundle-with-all.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With