Java 9 compiler breaks Project Lombok

2,678 views
Skip to first unread message

g...@quinteiro.org

unread,
Nov 7, 2015, 12:11:43 PM11/7/15
to bazel-discuss
It seems that Bazel uses the Java 9 compiler internally. This breaks my favorite time-saving annotations from Project Lombok. The bug report is here:

https://github.com/rzwitserloot/lombok/issues/942#issuecomment-154281184


Can't bag on the Lombok guys too much. Java 9 is not due to be released until next September.

Damien Martin-guillerez

unread,
Nov 10, 2015, 8:07:27 AM11/10/15
to g...@quinteiro.org, bazel-discuss
There is nothing we can do to mitigate the issue unfortunately. We need to be able to compile java9 and maintaining several version of our wrapper around the java compiler is just too much work.

--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/64c58060-e828-4a57-b2e2-f89eff04f51f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

g...@quinteiro.org

unread,
Nov 10, 2015, 9:51:05 AM11/10/15
to bazel-discuss, g...@quinteiro.org
On Tuesday, November 10, 2015 at 5:07:27 AM UTC-8, Damien Martin-guillerez wrote:
> There is nothing we can do to mitigate the issue unfortunately. We need to be able to compile java9 and maintaining several version of our wrapper around the java compiler is just too much work.
>

That's what I figured. It can't hurt to ask, and my shipwreck will hopefully serve as a warning to others navigating these waters.

Thomas Broyer

unread,
Nov 10, 2015, 12:28:57 PM11/10/15
to bazel-discuss, g...@quinteiro.org
Lombok is "a total hack", it's no wonder that it breaks so easily: https://www.reddit.com/r/programming/comments/9bb1e/project_lombok_automatic_resource_management_for/c0c5f7o (yes, it's a bit dated, but I believe it's still true more than 6 years later) 
(there are better ways to avoid boilerplate)

g...@quinteiro.org

unread,
Nov 10, 2015, 9:47:05 PM11/10/15
to bazel-discuss, g...@quinteiro.org
On Tuesday, November 10, 2015 at 9:28:57 AM UTC-8, Thomas Broyer wrote:
> Lombok is "a total hack", it's no wonder that it breaks so easily:

Yes, the Lombok guys have said their approach is a filthy hack. They're compile-time annotations, though, and this is the first time I've had any trouble at all in the 4-5 years I've been using them. Still, Bazel is a bigger win. I'll have to do without Lombok for now. It makes me sad, though.

> (there are better ways to avoid boilerplate)

I'm all ears.

Thomas Broyer

unread,
Nov 10, 2015, 10:46:22 PM11/10/15
to bazel-discuss, g...@quinteiro.org
@Value/@Builder → Google AutoValue, or Immutables.org
@Cleanup → try-with-resource (admittedly Java 7 and AutoCloseable only), or try…finally with Guava's Closeables
@NonNull → Objects.requireNonNull, or Guava's Preconditions.checkNotNull (it's a one-liner, doesn't require much more typing), or using the pattern from the JDK's internals: just calling theParam.getClass() to cause an NPE if theParam is null.
Almost everything else (exceptions: @SneakyThrows, @Synchronized, @Cleanup with non-Closeable, maybe also @Getter(lazy=true)) can be generated by an IDE once and for all. An alternative would be either an annotation processor generating a "companion class" (either a subclass or an unrelated class; see http://dev.arcbees.com/gwtp/tools/Boilerplate-Generation.html for an example of such approach: the annotated class is never actually referenced in code, that however mean it cannot contain code, only declarations), or some other codegen not based on annotation processing, or a non-Java JVM-based language (Kotlin? no Bazel support yet though…)

YMMV

g...@quinteiro.org

unread,
Nov 11, 2015, 9:49:15 AM11/11/15
to bazel-discuss, g...@quinteiro.org
Thanks for the suggestions.

The ones I use most are @Slf4j, @Getter/@Setter, and @Cleanup.

Hundreds of lines of machine-generated code are not a reasonable alternative to @Getter/@Setter, IMHO.

@Cleanup is nicer than try-with-resource, and I suspect the same applies to the Guava version.

Thanks for taking the time to reply, though.

gggg...@quinteiro.org

unread,
Feb 13, 2016, 8:22:32 PM2/13/16
to bazel-discuss, g...@quinteiro.org

Lombok has created an edge release that works with Bazel:

https://projectlombok.org/download-edge.html

Svend Johannsen

unread,
Feb 17, 2016, 6:49:27 PM2/17/16
to bazel-discuss, g...@quinteiro.org, gggg...@quinteiro.org
Has anyone had any luck getting this, supposedly Java 9 compatible, Lombok (1.16.7) to work with Bazel?

Svend Johannsen

unread,
Feb 17, 2016, 7:24:31 PM2/17/16
to bazel-discuss, g...@quinteiro.org, gggg...@quinteiro.org
We still fail to compile Lombok'ed Java code. Basically it's failing to build because the properties & methods that Lombok was supposed to create aren't available. Here's the build command:

BazelJavaBuilder threw exception: java compilation returned status ERROR

...

  external/local-jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac.jar -client -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/local_linux-fastbuild/bin/my-project/libdefault.jar-2.params): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1: java failed: error executing command 

  (cd /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/e44ccbe30899b3513451116133ca5b8d/my-project && \

  exec env - \

Target //my-project:default failed to build

INFO: Elapsed time: 1.735s, Critical Path: 1.64s


And if we grep the javac args, it shows Lombok on the classpath:

$ grep lombok bazel-out/local_linux-fastbuild/bin/my-project/libdefault.jar-2.params

bazel-out/local_linux-fastbuild/genfiles/external/org/projectlombok/lombok/jar/_ijar/jar/external/org/projectlombok/lombok/jar/lombok-1.16.7-ijar.jar

Damien Martin-guillerez

unread,
Feb 18, 2016, 4:12:12 AM2/18/16
to Svend Johannsen, bazel-discuss, g...@quinteiro.org, gggg...@quinteiro.org
Can we get the rest of the error log, what's the message from java builder (the part replaced by ...)?

--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.

Svend Johannsen

unread,
Feb 18, 2016, 1:52:15 PM2/18/16
to bazel-discuss, svend.j...@gmail.com, g...@quinteiro.org, gggg...@quinteiro.org

We build with --verbose_failures, but there's not much additional information. Here's the full trace modulus the first 99 errors:


my-project/src/file.java:59: error: invalid method reference

                .thenComparing(MyClass::getFoo)

                               ^

  cannot find symbol

    symbol:   method getFoo()

    location: class MyClass

100 errors

BazelJavaBuilder threw exception: java compilation returned status ERROR

ERROR: /home/tdgreenw/temp/my-workspace/my-project/BUILD:9:1: Java compilation in rule '//my-project:default' failed: java failed: error executing command 

  (cd /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/e44ccbe30899b3513451116133ca5b8d/my-workspace && \

  exec env - \

  external/local-jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac.jar -client -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/local_linux-fastbuild/bin/my-project/libdefault.jar-2.params): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1: java failed: error executing command 

  (cd /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/e44ccbe30899b3513451116133ca5b8d/my-workspace && \

  exec env - \

  external/local-jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac.jar -client -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/local_linux-fastbuild/bin/my-project/libdefault.jar-2.params): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

Target //my-project:default failed to build

INFO: Elapsed time: 1.735s, Critical Path: 1.64s


Svend Johannsen

unread,
Feb 18, 2016, 5:59:31 PM2/18/16
to bazel-discuss, svend.j...@gmail.com, g...@quinteiro.org, gggg...@quinteiro.org
Here's a more complete example. Fails to build in Bazel, succeeds in Maven for reference.
Using Lombok 1.16.7

Our version of Bazel is 0.1.1 - which arguably is a bit old (October).


Project:

$ find my-app/ | egrep -v .git

my-app/

my-app/BUILD

my-app/DEPS

my-app/README.md

my-app/pom.xml

my-app/src

my-app/src/test

my-app/src/test/java

my-app/src/test/java/com

my-app/src/test/java/com/mycompany

my-app/src/test/java/com/mycompany/app

my-app/src/test/java/com/mycompany/app/AppTest.java

my-app/src/main

my-app/src/main/java

my-app/src/main/java/com

my-app/src/main/java/com/mycompany

my-app/src/main/java/com/mycompany/app

my-app/src/main/java/com/mycompany/app/GetterSetterExample.java

my-app/src/main/java/com/mycompany/app/App.java


#pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

   <modelVersion>4.0.0</modelVersion>

   <groupId>com.mycompany.app</groupId>

   <artifactId>my-app</artifactId>

   <packaging>jar</packaging>

   <version>1.0-SNAPSHOT</version>

   <name>my-app</name>

   <url>http://maven.apache.org</url>

   <dependencies>

       <dependency>

           <groupId>junit</groupId>

           <artifactId>junit</artifactId>

           <version>3.8.1</version>

           <scope>test</scope>

       </dependency>

       <dependency>

           <groupId>org.projectlombok</groupId>

           <artifactId>lombok</artifactId>

           <version>1.16.7</version>

           <scope>provided</scope>

       </dependency>

   </dependencies>

</project>



$ cat my-app/BUILD

## ----------------------------------------------------------------------------

## BUILD

## ----------------------------------------------------------------------------


# The following dependencies were calculated from:

# /home/tdgreenw/temp/maven-quickstart-ws/my-app/pom.xml


java_library(

   name = "default",

   srcs = glob(["src/**/*"]),

   deps = [

       "@junit/junit//jar",

       "@org/projectlombok/lombok//jar",

   ],

   visibility = ["//visibility:public"],

)


$ cat my-app/DEPS

## ----------------------------------------------------------------------------

## DEPS

## ----------------------------------------------------------------------------

# The following dependencies were calculated from:

# /home/tdgreenw/temp/maven-quickstart-ws/my-app/pom.xml


maven_jar(

   artifact = "junit:junit:3.8.1",

   name = "junit/junit",

   server = None,

)

maven_jar(

   artifact = "org.projectlombok:lombok:1.16.7",

   name = "org/projectlombok/lombok",

   server = None,

)



$ cat my-app/src/test/java/com/mycompany/app/AppTest.java

package com.mycompany.app;


import junit.framework.Test;

import junit.framework.TestCase;

import junit.framework.TestSuite;


/**

* Unit test for simple App.

*/

public class AppTest

   extends TestCase

{

   /**

    * Create the test case

    *

    * @param testName name of the test case

    */

   public AppTest( String testName )

   {

       super( testName );

   }


   /**

    * @return the suite of tests being tested

    */

   public static Test suite()

   {

       return new TestSuite( AppTest.class );

   }


   /**

    * Rigourous Test :-)

    */

   public void testApp()

   {

       App app = new App();

       assertNotNull(app);

   }


   public void testApp1()

   {

       GetterSetterExample gse = new GetterSetterExample();

       assertNotNull(gse);

       int age = 99;

       String name = "Todd";


       gse.setAge(age);

       gse.setName(name);


       assertEquals(age, gse.getAge());

   }

}


$ cat my-app/src/main/java/com/mycompany/app/GetterSetterExample.java

package com.mycompany.app;


import lombok.AccessLevel;

import lombok.Getter;

import lombok.Setter;


public class GetterSetterExample {

 /**

  * Age of the person. Water is wet.

  *

  * @param age New value for this person's age. Sky is blue.

  * @return The current value of this person's age. Circles are round.

  */

 @Getter @Setter private int age = 10;


 /**

  * Name of the person.

  * -- SETTER --

  * Changes the name of this person.

  *

  * @param name The new value.

  */

 @Setter(AccessLevel.PROTECTED) private String name;


 @Override public String toString() {

   return String.format("%s (age: %d)", name, age);

 }

}



$ cat my-app/src/main/java/com/mycompany/app/App.java

package com.mycompany.app;


/**

* Hello world!

*

*/

public class App

{

   public static void main( String[] args )

   {

       System.out.println( "Hello World!" );


       GetterSetterExample gse = new GetterSetterExample();

       gse.setAge(99);

       gse.setName("Todd");


       System.out.println( String.format("GSE: %s", gse) );

   }

}


$ cat WORKSPACE

## ----------------------------------------------------------------------------

## Maven Jars

## ----------------------------------------------------------------------------

maven_jar(artifact='junit:junit:3.8.1', name='junit/junit', server=None)

maven_jar(artifact='org.projectlombok:lombok:1.16.7', name='org/projectlombok/lombok', server=None)


$ bazel build //my-app:default --verbose_failures


INFO: Found 1 target...

INFO: From Building my-app/libdefault.jar (3 files):

my-app/src/main/java/com/mycompany/app/App.java:14: error: cannot find symbol

       gse.setAge(99);

          ^

 symbol:   method setAge(int)

 location: variable gse of type GetterSetterExample

my-app/src/main/java/com/mycompany/app/App.java:15: error: cannot find symbol

       gse.setName("Todd");

          ^

 symbol:   method setName(String)

 location: variable gse of type GetterSetterExample

my-app/src/test/java/com/mycompany/app/AppTest.java:47: error: cannot find symbol

       gse.setAge(age);

          ^

 symbol:   method setAge(int)

 location: variable gse of type GetterSetterExample

my-app/src/test/java/com/mycompany/app/AppTest.java:48: error: cannot find symbol

       gse.setName(name);

          ^

 symbol:   method setName(String)

 location: variable gse of type GetterSetterExample

my-app/src/test/java/com/mycompany/app/AppTest.java:50: error: cannot find symbol

       assertEquals(age, gse.getAge());

                            ^

 symbol:   method getAge()

 location: variable gse of type GetterSetterExample

5 errors

BazelJavaBuilder threw exception: java compilation returned status ERROR

ERROR: /home/tdgreenw/temp/maven-quickstart-ws/my-app/BUILD:8:1: Java compilation in rule '//my-app:default' failed: java failed: error executing command

 (cd /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/57073b756147bd0f753c5ed2228c23dd/maven-quickstart-ws && \

 exec env - \

 external/local-jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac.jar -client -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jar-2.params): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1: java failed: error executing command

 (cd /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/57073b756147bd0f753c5ed2228c23dd/maven-quickstart-ws && \

 exec env - \

 external/local-jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac.jar -client -jar external/bazel_tools/tools/jdk/JavaBuilder_deploy.jar @bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jar-2.params): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.

Target //my-app:default failed to build


$ cat /home/tdgreenw/.cache/bazel/_bazel_tdgreenw/57073b756147bd0f753c5ed2228c23dd/maven-quickstart-ws/bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jar-2.params

--classdir

bazel-out/local_linux-fastbuild/bin/my-app/_javac/default/libdefault_classes

--tempdir

bazel-out/local_linux-fastbuild/bin/my-app/_javac/default/libdefault_temp

--output

bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jar

--sourcegendir

bazel-out/local_linux-fastbuild/bin/my-app/_javac/default/libdefault_sourcegenfiles

--output_manifest_proto

bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jar_manifest_proto

--compress_jar

--output_deps_proto

bazel-out/local_linux-fastbuild/bin/my-app/libdefault.jdeps

--classpath

bazel-out/local_linux-fastbuild/genfiles/external/junit/junit/jar/_ijar/jar/external/junit/junit/jar/junit-3.8.1-ijar.jar:bazel-out/local_linux-fastbuild/genfiles/external/org/projectlombok/lombok/jar/_ijar/jar/external/org/projectlombok/lombok/jar/lombok-1.16.7-ijar.jar:bazel-out/local_linux-fastbuild/bin/my-app/_javac/default/libdefault_classes

--extdir

external/local-jdk/jre/lib/ext

--sources

my-app/src/main/java/com/mycompany/app/App.java

my-app/src/main/java/com/mycompany/app/GetterSetterExample.java

my-app/src/test/java/com/mycompany/app/AppTest.java

--javacopts

-source

8

-target

8

-encoding

UTF-8

-bootclasspath

external/local-jdk/jre/lib/rt.jar:external/local-jdk/jre/lib/resources.jar:external/local-jdk/jre/lib/jsse.jar:external/local-jdk/jre/lib/jce.jar:external/local-jdk/jre/lib/charsets.jar

--strict_java_deps

ERROR

--direct_dependency

bazel-out/local_linux-fastbuild/genfiles/external/junit/junit/jar/_ijar/jar/external/junit/junit/jar/junit-3.8.1-ijar.jar

@@junit/junit//jar:jar

--direct_dependency

bazel-out/local_linux-fastbuild/genfiles/external/org/projectlombok/lombok/jar/_ijar/jar/external/org/projectlombok/lombok/jar/lombok-1.16.7-ijar.jar

@@org/projectlombok/lombok//jar:jar

--reduce_classpath

--rule_kind

java_library

--target_label

//my-app:default



$ mvn clean compile package test

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building my-app 1.0-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ my-app ---

[INFO]

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-app ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] skip non existing resourceDirectory /home/tdgreenw/temp/maven-quickstart-ws/my-app/src/main/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-app ---

[INFO] Changes detected - recompiling the module!

[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!

[INFO] Compiling 2 source files to /home/tdgreenw/temp/maven-quickstart-ws/my-app/target/classes

[INFO]

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-app ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] skip non existing resourceDirectory /home/tdgreenw/temp/maven-quickstart-ws/my-app/src/main/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my-app ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] skip non existing resourceDirectory /home/tdgreenw/temp/maven-quickstart-ws/my-app/src/test/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ my-app ---

[INFO] Changes detected - recompiling the module!

[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!

[INFO] Compiling 1 source file to /home/tdgreenw/temp/maven-quickstart-ws/my-app/target/test-classes

[INFO]

[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-app ---

[INFO] Surefire report directory: /home/tdgreenw/temp/maven-quickstart-ws/my-app/target/surefire-reports


-------------------------------------------------------

T E S T S

-------------------------------------------------------

Running com.mycompany.app.AppTest

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec


Results :


Tests run: 2, Failures: 0, Errors: 0, Skipped: 0


[INFO]

[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-app ---

[INFO] Building jar: /home/tdgreenw/temp/maven-quickstart-ws/my-app/target/my-app-1.0-SNAPSHOT.jar

[INFO]

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ my-app ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] skip non existing resourceDirectory /home/tdgreenw/temp/maven-quickstart-ws/my-app/src/main/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ my-app ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] skip non existing resourceDirectory /home/tdgreenw/temp/maven-quickstart-ws/my-app/src/test/resources

[INFO]

[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ my-app ---

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ my-app ---

[INFO] Skipping execution of surefire because it has already been run for this configuration

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1.539 s

[INFO] Finished at: 2016-02-18T14:07:08-08:00

[INFO] Final Memory: 20M/308M

[INFO] ------------------------------------------------------------------------

gggg...@quinteiro.org

unread,
Feb 19, 2016, 12:22:31 AM2/19/16
to bazel-discuss, svend.j...@gmail.com
Lombok is a compile-time plugin. You have to use a Bazel java_plugin rule
http://bazel.io/docs/be/java.html#java_plugin

The following works for me:

java_library(
name = "app",
srcs = glob(["src/main/java/**/*.java"]),
deps = [
"javax.servlet.api",
":lombok",
"@slf4j_jar//jar",
],
)

java_plugin(
name = "lombok_plugin",
processor_class = "lombok.launch.AnnotationProcessorHider$AnnotationProcessor",
deps = ["@lombok_jar//jar"],
)

java_library(
name = "lombok",
exports = ["@lombok_jar//jar"],
exported_plugins = [":lombok_plugin"],
)


That is part of my Bazel servlet proof-of-concept. I added your GetterSetterExample to a branch of that project, and it works fine:
https://github.com/Jose123456/bazel-test/tree/getsettest

I'm using lombok-edge.jar from here:
https://projectlombok.org/download-edge.html

I find "bazel build -s" to be more useful than "verbose_failures". I learned of this switch on kchodorow's blog:
http://www.kchodorow.com/blog/2015/08/12/tutorial-how-to-write-scala-rules-for-bazel/


HTH,
Jose.

Svend Johannsen

unread,
Feb 23, 2016, 5:34:04 PM2/23/16
to bazel-discuss, svend.j...@gmail.com, gggg...@quinteiro.org
Thanks that works for us too. Using java_plugin was the culprit.
Reply all
Reply to author
Forward
0 new messages