Kotlin + Spring Boot 应用中多个 main 函数的处理: build.gradle 配置

本文介绍如何在SpringBoot项目中集成Kotlin语言,并详细展示了build.gradle配置示例及注意事项,如Kotlin类编译后的文件命名规则和启动类配置。

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
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值