load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library")
kt_jvm_library(
name = "my_lib",
srcs = glob(["**/*.kt"]),
deps = [":my_dependency"],
visibility = ["//visibility:public"],
)
kt_jvm_test(
name = "my_test",
srcs = ["MyTest.kt"],
deps = [":my_lib"],
)
plugins {
id 'org.jetbrains.kotlin.jvm' version
id 'org.jetbrains.kotlin.plugin.allopen' version
}
allOpen {
annotation('com.myapp.myannotation')
annotation('kotlin.Metadata')
// add any other annotation you want to allow here
}
dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
}
java_binary(
name = "my_binary",
srcs = ["my_binary.kt"],
deps = [
":my_lib",
],
jvm_flags = [
"-Djava.library.path=${my_jni_library.runfiles}",
],
)
bazel build //my/package:my_lib
bazel test //my/package:my_test
注意:如果使用的是Kotlin Spring Boot,则需要在build.gradle文件中添加:
bootJar {
launchScript()
}