Comments (6)
@and-marsh I am using kotlin script too and the imporing of kotlin-logging works for me. My file is like this:
#!/usr/bin/env kotlin
@file:Repository("https://jcenter.bintray.com")
@file:DependsOn("io.github.microutils:kotlin-logging-jvm:2.0.2")
@file:DependsOn("com.github.doyaaaaaken:kotlin-csv-jvm:0.11.0")
from kotlin-csv.
In my case the Maven try to resolve mu/KotlinLogging
via JitPack.io instead of Maven Central, and receive an empty Jar, causing such exception.
from kotlin-csv.
@ltpquang OK, thanks for reporting 🙇
from kotlin-csv.
I have the same issue with the kotlin script feature.
It looks like:
java.lang.NoClassDefFoundError: mu/KotlinLogging
at com.github.doyaaaaaken.kotlincsv.client.CsvFileReader.<init>(CsvFileReader.kt:21)
at com.github.doyaaaaaken.kotlincsv.client.CsvReader.open(CsvReader.kt:176)
at com.github.doyaaaaaken.kotlincsv.client.CsvReader.readAllWithHeader(CsvReader.kt:58)
at Kotlin_test_main$1.invoke(kotlin-test.main.kts:33)
at Kotlin_test_main$1.invoke(kotlin-test.main.kts:14)
at com.xenomachina.argparser.SystemExitExceptionKt.mainBody(SystemExitException.kt:74)
at com.xenomachina.argparser.SystemExitExceptionKt.mainBody$default(SystemExitException.kt:72)
at Kotlin_test_main.<init>(kotlin-test.main.kts:26)
Caused by: java.lang.ClassNotFoundException: mu.KotlinLogging
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
And this my script:
#!/usr/bin/env kotlin
@file:Repository("https://jcenter.bintray.com")
@file:DependsOn("com.xenomachina:kotlin-argparser:2.0.7")
@file:DependsOn("com.github.doyaaaaaken:kotlin-csv-jvm:0.13.0")
import com.github.doyaaaaaken.kotlincsv.dsl.csvReader
import com.xenomachina.argparser.ArgParser
import com.xenomachina.argparser.mainBody
import java.io.File
class MyArgs(parser: ArgParser) {
val verbose by parser.flagging(
"-v", "--verbose",
help = "enable verbose mode")
val source by parser.positional(
"SOURCE",
help = "source filename")
}
mainBody {
ArgParser(args).parseInto(::MyArgs).run {
if (verbose) {
println("Parsing source file: $source")
}
val csvData: String = "a,b,c\nd,e,f"
val rows: List<Map<String, String>> = csvReader().readAllWithHeader(csvData)
println(rows)
}
}
Any suggestion?
Anyway, your parser looks great! Thank you for your job!
from kotlin-csv.
Hi, @and-marsh !
I'm sorry I'm not familiar with the kotlin script feature, but I'll try to describe the cause I imagine.
As you could see this line, kotlin-csv uses kotlin-logging as a logging library.
And the kotlin-logging depends on slf4j-api, so maybe you would need to add a concrete logger library like logback.
https://github.com/MicroUtils/kotlin-logging#download
Important note: kotlin-logging depends on slf4j-api (in the JVM artifact). In runtime, it is also required to depend on a logging implementation. More details in how-to-configure-slf4j. And an excellent detailed explanation in a-guide-to-logging-in-java.
from kotlin-csv.
Hey,
I ran into a similar error:
org.gradle.internal.resolve.ModuleVersionResolveException:
Could not resolve io.github.microutils.kotlin-logging:kotlin-logging-common:1.7.9.
but I was able to resolve it by adding the following to my build.gradle
file:
implementation 'io.github.microutils:kotlin-logging:1.12.5'
(for some reason implementation 'io.github.microutils:kotlin-logging-jvm:2.0.10'
didn't work)
from kotlin-csv.
Related Issues (20)
- Make CsvFileReader.readNext() private HOT 6
- Keep input stream open HOT 2
- Optimize writeNext Method HOT 3
- The binary version of its metadata is 1.6.0, expected version is 1.4.2.
- Seeing a parsing error when quotes within text HOT 1
- Parser unable to parse csv file with lower row quantity compare with header HOT 6
- Introduce `insufficientFieldsRowBehaviour = "EMPTY_STRING"` option on CSV reader HOT 2
- How to read big csv file using your library?
- CsvFileWriter.writeRows writes line terminator even when passed list or sequence is empty HOT 3
- Allow an error interface channnel HOT 1
- Unable to parse with multiple quotes HOT 1
- Exception in thread "main" com.github.doyaaaaaken.kotlincsv.util.CSVParseFormatException: must appear escapeChar(") after escapeChar(") [rowNum = 729, colIndex = 467, char = "]
- Add support for WebAssembly HOT 2
- Use java.nio.Path instead of File
- Allow writing data with headers
- Make common ancestor for CsvReaderContext and CsvWriterContext
- Only reads 23 instead of 614 lines HOT 1
- Add reader's option to skip header row
- Change groupId
- Version 2.0 Release Plan
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kotlin-csv.