Closed jschneider closed 5 years ago
Hey @jschneider !
Could you please give me more details about the issue? The very best would be to get a code snippet. I tried to reproduce in a tiny gradle project, but failed.
Here is my test code
util.kt
package io.kohttp.test
import io.github.rybalkinsd.kohttp.dsl.httpGet
fun main(args: Array<String>) {
val response: okhttp3.Response = httpGet {
host = "google.com"
path = "/search"
param {
"q" to "iphone"
"safe" to "off"
}
}
println(response.body()!!.string())
}
build.gradle.kts
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.11"
}
group = "kohttp"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
compile(kotlin("stdlib-jdk8"))
compile(group = "io.github.rybalkinsd", name = "kohttp", version = "0.7.0")
}
val fatJar = task("fatJar", type = Jar::class) {
manifest {
attributes["Main-Class"] = "io.kohttp.test.UtilKt"
}
from(configurations.runtime.map({ if (it.isDirectory) it else zipTree(it) }))
with(tasks["jar"] as CopySpec)
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
tasks {
"build" {
dependsOn(fatJar)
}
}
Take a look at the generated pom: https://search.maven.org/artifact/io.github.rybalkinsd/kohttp/0.7.0/jar
The generated pom.xml contains that code:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.12.0</version>
<scope>runtime</scope>
</dependency>
I think scope = runtime is not the best
https://github.com/gradle/gradle/issues/1118 which references https://youtrack.jetbrains.com/issue/KT-28355
There is a workaround described there. Don't know if it is worth it - maybe just wait for the bugfix upstream
related to an internal problem for API dependency and kotlin compiler bug
Yeah, that is the bug I was referencing... Thanks for working around that issue.
@jschneider 0.7.1
is syncing to maven central now. Will be available in several hours
I am sure you have good reasons for. But it took me longer than I am willing to admit to figure out why "okhttp3.Response" could not be resolved.
Could you either: