如何使用all-open插件

在build.gradle文件中加入插件:

buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}
apply plugin: "kotlin-allopen"

或者如果你使用Gradle插件DSL,将其加入到plugins代码块:

plugins {
    id "org.jetbrains.kotlin.plugin.allopen" version "<version to use>"
}

然后指定可以让class变为open状态的注解:

allOpen {
annotation("com.my.Annotation")
}

如果类(或者任何其他的超类)被标记为com.my.Annotation,类本身和它的所有成员都会变为open。

也可以和meta-annotation一起使用。

@com.my.Annotation
annotation class MyFrameworkAnnotation
@MyFrameworkAnnotation
class MyClass // will be all-open

MyFrameworkAnnotation也会让类变成open状态,因为它被标记为com.my.Annotation。

如下是在Maven中使用:

<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<configuration>
<compilerPlugins>
<!-- Or "spring" for the Spring support -->
<plugin>all-open</plugin>
</compilerPlugins>
<pluginOptions>
<!-- Each annotation is placed on its own line -->
<option>all-open:annotation=com.my.Annotation</option>
<option>all-open:annotation=com.their.AnotherAnnotation</option>
</pluginOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
</plugin>

results matching ""

    No results matching ""