bazel build java-библиотека не создает никаких файлов классов - PullRequest
0 голосов
/ 06 февраля 2019

Я новичок в Базеле, и у меня есть этот демо-проект и файл BUILD:

package com.demo;

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

(1) mkdir src / main / java / com / demo, тогда у меня есть

DemoRunner.java:

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

Hello.java

package com.demo;

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

Затем я запускаю:

bazel build //:hello
bazel build //:HelloTest

Не удалось найти библиотеку:

java -classpath bazel-bin/hello.jar com.demo.DemoRunnerException in thread 
"main" java.lang.NoClassDefFoundError: com/demo/Hello
    at com.demo.DemoRunner.main(DemoRunner.java:4)
Caused by: java.lang.ClassNotFoundException: com.demo.Hello
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

Я использовал команду "find" для поиска файлов ".class", но ничего не нашел.Я использую файл «jar» для проверки hello.jar, я обнаружил, что существует только «класс DemoRunner», но отсутствует «класс Hello»:

jar tvf bazel-bin/hello.jar
  0 Fri Jan 01 00:00:00 CST 2010 META-INF/
 68 Fri Jan 01 00:00:00 CST 2010 META-INF/MANIFEST.MF
  0 Fri Jan 01 00:00:00 CST 2010 com/
  0 Fri Jan 01 00:00:00 CST 2010 com/demo/
466 Fri Jan 01 00:00:02 CST 2010 com/demo/DemoRunner.class

Итак, где я ошибся, как я мог построитьмой библиотечный файл и заставить его работать?Но, кстати, где bazel хранит все файлы классов, которые выводит javac?

...