Spring Boot 默认会找一个 main,如果多个 main,需要配启动main。测试代码,写在 test 下面。不要用 main 来写测试。
需要注意的 Kotlin 的类编译之后,class 文件名对应的会在后面加上 Kt
例如,CmsApplication ---> CmsApplicationKt
mainClassName = "com.ak47.cms.cms.CmsApplicationKt"
build.gradle 配置如下:
buildscript {
ext {
kotlinVersion = '1.1.60'
springBootVersion = '2.0.0.BUILD-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
}
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'application'
group = 'com.ak47.cms'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
mainClassName = "com.ak47.cms.cms.CmsApplicationKt"
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-data-elasticsearch')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-freemarker')
compile('org.springframework.boot:spring-boot-starter-mail')
compile('org.springframework.boot:spring-boot-starter-quartz')
// compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-web')
compile("org.jetbrains.kotlin:kotlin-stdlib-jre8")
compile("org.jetbrains.kotlin:kotlin-reflect")
runtime('mysql:mysql-connector-java')
testCompile('org.springframework.boot:spring-boot-starter-test')
// testCompile('org.springframework.security:spring-security-test')
compile('com.alibaba:fastjson:1.1.64.android')
compile 'com.squareup.okhttp3:okhttp:3.8.1'
// https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core
compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: '0.19.2'
compile group: 'net.sourceforge.htmlunit', name: 'htmlunit', version: '2.27'
compile group: 'org.jsoup', name: 'jsoup', version: '1.10.3'
compile group: 'org.apache.shiro', name: 'shiro-spring', version: '1.4.0'
compile group: 'org.apache.shiro', name: 'shiro-ehcache', version: '1.4.0'
}
#!/usr/bin/env bash
gradle clean bootRun