天天看点

【49】kotlin 注解处理器

配置build.gradle

apply plugin:"kotlin-kapt"
           

将生成的代码添加到SourceSets

sourceSets{
    main.kotlin.srcDirs=+"build\\generated\\source\\kapt\\main"
}
           

整个build.gradle

buildscript {
    ext.kotlin_version = '1.3.72'
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
    }
}
plugins {
    id 'java'
    id 'application'

    id 'org.jetbrains.kotlin.jvm' version "1.3.72"
}
apply plugin:"java"
apply plugin:"application"
apply plugin:"kotlin"
apply plugin:"kotlin-noarg"
apply plugin:"kotlin-allopen"
apply plugin:"kotlin-kapt"
mainClassName = "com.yzdzy.kotlin.calc.CalcKt"
group 'com.yzdzy'
version '1.0-SNAPSHOT'

noArg {
    annotation("com.yzdzy.kotlin.chapter4.annotations.PoKo")
}
allOpen {
    annotation("com.yzdzy.kotlin.chapter4.annotations.PoKo")
}
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}
sourceSets{
    main.kotlin.srcDirs=+"build\\generated\\source\\kapt\\main"
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'org.jetbrains:annotations:15.0'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
           

注意:Intellij展示还不支持注解处理器的编译

所以需要

【49】kotlin 注解处理器

双击下这里编译下 

继续阅读