2017-09-24 116 views
-1

我試圖測試HTML應用程序,我build.gradle依賴是:找不到org.jetbrains.kotlinx:kotlinx-HTML:0.6.4

dependencies { 
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" 
    compile "org.jetbrains.ktor:ktor-core:$ktor_version" 
    compile 'org.jetbrains.kotlinx:kotlinx-html:0.6.4' 
    compile "org.jetbrains.ktor:ktor-netty:$ktor_version" 
    compile "org.apache.commons:commons-email:1.4" 
    compile "org.slf4j:slf4j-simple:1.7.25" 
    compile "ch.qos.logback:logback-classic:1.2.1" 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 

我下面的錯誤運行時的gradle構建:

找不到org.jetbrains.kotlinx:kotlinx-HTML:0.6.4

有什麼錯誤嗎?

回答

3

Here你可以找到包括kotlinx的說明。你需要做的是增加適當庫:

repository { 
    jcenter() 
} 

和依賴:

dependencies { 
    compile 'org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.4' // server side dev 
    compile 'org.jetbrains.kotlinx:kotlinx-html-js:0.6.4' // client side dev 
} 
+0

感謝@Opal,你能在這裏幫助請:https://stackoverflow.com/questions/46413579/kotlin-html-builder –

0

由於@Opal,他的回答後,進一步挖掘,發現我可以使用ktor-html-builder,所以我的代碼成爲本:

gradle.build

group 'Example' 

version 'alpha' 

buildscript { 
    ext.kotlin_version = '1.1.4-3' 
    ext.ktor_version = '0.4.0' 

    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
    } 
} 

apply plugin: 'java' 
apply plugin: 'kotlin' 

sourceCompatibility = 1.8 

repositories { 
    jcenter() 
    mavenCentral() 
    maven { url "http://dl.bintray.com/kotlin/ktor" } 
    maven { url "https://dl.bintray.com/kotlin/kotlinx" } 
} 

dependencies { 
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" 
    compile "org.jetbrains.ktor:ktor-core:$ktor_version" 
    compile "org.jetbrains.ktor:ktor-netty:$ktor_version" 
    compile "org.jetbrains.ktor:ktor-html-builder:$ktor_version" 

    compile "org.apache.commons:commons-email:1.4" 
    compile "org.slf4j:slf4j-simple:1.7.25" 
    compile "ch.qos.logback:logback-classic:1.2.1" 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 

compileKotlin { 
    kotlinOptions.jvmTarget = "1.8" 
} 
compileTestKotlin { 
    kotlinOptions.jvmTarget = "1.8" 
} 
kotlin { 
    experimental { 
     coroutines "enable" 
    } 
} 


jar { 
    baseName 'abc' 
    manifest { 
     attributes 'Main-Class': 'blog.BlogAppKt' 
    } 

    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
} 

BlogApp.tk變成了:

package blog 

import kotlinx.html.* 
import org.jetbrains.ktor.host.* // for embededServer 
import org.jetbrains.ktor.netty.* // for Netty 
import org.jetbrains.ktor.application.* 
import org.jetbrains.ktor.features.* 
import org.jetbrains.ktor.html.* 
import org.jetbrains.ktor.routing.* 

fun Application.module() { 
    install(DefaultHeaders) 
    install(CallLogging) 
    install(Routing) { 
     get("/") { 
      call.respondHtml { 
       head { 
        title { +"HTML Application" } 
       } 
       body { 
        h1 { +"Sample application with HTML builders" } 
        widget { 
         +"Widgets are just functions" 
        } 
       } 
      } 
     } 
    } 
} 

fun FlowContent.widget(body: FlowContent.() -> Unit) { 
    div { body() } 
} 

fun main(args: Array<String>) { 
    embeddedServer(Netty, 8080, watchPaths = listOf("BlogAppKt"), module = Application::module).start() 
}