如何修复kotlin的bazel项目?

如何修复kotlin的bazel项目?,kotlin,bazel,Kotlin,Bazel,我希望能够使用bazel组织一个简单的kotlin项目 我正在使用规则_kotlin()中列出的模板 这是我的构建文件 load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library") kt_jvm_library( name = "redis-tools", srcs = glob(["*.kt"]), deps = [], ) 这是我的工作区文件 load("@bazel_tools//tool

我希望能够使用bazel组织一个简单的kotlin项目

我正在使用规则_kotlin()中列出的模板

这是我的构建文件

load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library")

kt_jvm_library(
    name = "redis-tools",
    srcs = glob(["*.kt"]),
    deps = [],
)
这是我的工作区文件

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

rules_kotlin_version = "legacy-1.3.0"
rules_kotlin_sha = "4fd769fb0db5d3c6240df8a9500515775101964eebdf85a3f9f0511130885fde"
http_archive(
    name = "io_bazel_rules_kotlin",
    urls = ["https://github.com/bazelbuild/rules_kotlin/archive/%s.zip" % rules_kotlin_version],
    type = "zip",
    strip_prefix = "rules_kotlin-%s" % rules_kotlin_version,
    sha256 = rules_kotlin_sha,
)

load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains")
kotlin_repositories() # if you want the default. Otherwise see custom kotlinc distribution below
kt_register_toolchains() # to use the default toolchain, otherwise see toolchains below
My kotlin文件
main.kt

import java.util.Scanner

fun main(args: Array<String>) {

    // Creates a reader instance which takes
    // input from standard input - keyboard
    val reader = Scanner(System.`in`)
    print("Enter a number: ")

    // nextInt() reads the next integer from the keyboard
    var integer:Int = reader.nextInt()

    // println() prints the following line to the output screen
    println("You entered: $integer")
}

我没有击中目标吗?如何从bazel输出运行
main.tk

您试图运行的jar缺少声明其主类的清单文件

为了执行二进制文件,Bazel使用一个shell脚本包装器,其中包括所需的jvm标志及其运行时依赖项

请注意,您使用的是
kt\ujvm\u库
。此规则在不使用包装器的情况下构建共享依赖项。要包含包装器,您应该使用
kt\u jvm\u binary
规则。然后,您可以通过设置
main\u class
属性来指定主类

注意,您可以使用
bazel运行:redis工具
运行jar(使用
-s
查看bazel执行了哪个脚本)

您还可以使用
bazel build:redis-tools_deploy.jar
构建一个“胖jar”,其中将包含清单

$ java -jar bazel-out/darwin-fastbuild/bin/redis-tools.jar
no main manifest attribute, in bazel-out/darwin-fastbuild/bin/redis-tools.jar