Bazel build java demo: build ok ma non riesce a funzionare


Sono nuovo di bazel e ho questo progetto demo:

(1) progetto dimostrativo mkdir

(2) cd demo-progetto

(3) mkdir-p src / main / java / com / demo

(4) vi src / main / java / com / demo / DemoRunner.java

package com.demo;
public class DemoRunner {
    public static void main(String args[]) {
        Hello.hello();
    }
}

(5) vi src / main / java / com / demo / Ciao.java

package com.demo;

public class Hello {
    public static void hello() {
        System.out.println("hello,world");
    }
}

(6) vi ~ / demo-progetto / COSTRUIRE

java_binary(
    name = "hello",
    srcs = glob(["**/*.java"]),
    main_class = "com.demo.DemoRunner",
)

(7) bazel build//: ciao

Starting local Bazel server and connecting to it...
...........
Analyzing: target //:hello (2 packages loaded)
INFO: Analysed target //:hello (15 packages loaded).
INFO: Found 1 target...
Target //:hello up-to-date:
bazel-bin/hello.jar
bazel-bin/hello
INFO: Elapsed time: 60.505s, Critical Path: 1.24s
INFO: 1 process: 1 worker.
INFO: Build completed successfully, 6 total actions

Tutto sembra OK, ma quando ho provato a

java bazel-bin/hello # Cannot find or load main class bazel-bin.hello
java -jar bazel-bin/hello.jar # Cannot find main list property in bazel-bin/hello.jar

Nessuno dei due comandi ha successo, come descritto sopra. Quindi, dopo la compilazione di bazel, come posso eseguire l'eseguibile java?

Author: Vertexwahn, 2019-02-05

1 answers

Il comando Bazel run può essere usato per eseguire obiettivi specificati (vedi anche commento da Bhavik):

bazel run //:hello
 1
Author: Vertexwahn, 2019-11-11 19:38:58