aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/java_tools')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavaCompiler.java8
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BlazeJavaCompilerPlugin.java5
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java10
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java6
4 files changed, 25 insertions, 4 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavaCompiler.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavaCompiler.java
index d5db1e5fc4..704cc262c0 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavaCompiler.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavaCompiler.java
@@ -82,12 +82,12 @@ public class BlazeJavaCompiler extends JavaCompiler {
public Env<AttrContext> attribute(Env<AttrContext> env) {
Env<AttrContext> result = super.attribute(env);
// don't run plugins if there were compilation errors
- if (errorCount() > 0) {
- return result;
- }
+ boolean errors = errorCount() > 0;
// Iterate over all plugins, calling their postAttribute methods
for (BlazeJavaCompilerPlugin plugin : plugins) {
- plugin.postAttribute(result);
+ if (!errors || plugin.runOnAttributionErrors()) {
+ plugin.postAttribute(result);
+ }
}
return result;
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BlazeJavaCompilerPlugin.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BlazeJavaCompilerPlugin.java
index b962434399..be61a1a21b 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BlazeJavaCompilerPlugin.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/BlazeJavaCompilerPlugin.java
@@ -90,4 +90,9 @@ public abstract class BlazeJavaCompilerPlugin {
this.log = log;
this.compiler = compiler;
}
+
+ /** Returns true if the plugin should run on compilations with attribution errors. */
+ public boolean runOnAttributionErrors() {
+ return false;
+ }
}
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java
index 6319df0c28..b7491a564c 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java
@@ -72,6 +72,7 @@ public final class DependencyModule {
private final String targetLabel;
private final Path outputDepsProtoFile;
private final Set<Path> usedClasspath;
+ private boolean hasMissingTargets;
private final Map<Path, Dependency> explicitDependenciesMap;
private final Map<Path, Dependency> implicitDependenciesMap;
private final ImmutableSet<Path> platformJars;
@@ -223,6 +224,15 @@ public final class DependencyModule {
return strictClasspathMode;
}
+ void setHasMissingTargets() {
+ hasMissingTargets = true;
+ }
+
+ /** Returns true if any missing transitive dependencies were reported. */
+ public boolean hasMissingTargets() {
+ return hasMissingTargets;
+ }
+
/**
* Computes a reduced compile-time classpath from the union of direct dependencies and their
* dependencies, as listed in the associated .deps artifacts.
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java
index ca8d007065..60ec10c581 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java
@@ -202,6 +202,7 @@ public final class StrictJavaDepsPlugin extends BlazeJavaCompilerPlugin {
.collect(toImmutableSet());
errWriter.print(
dependencyModule.getFixMessage().get(canonicalizedMissing, canonicalizedLabel));
+ dependencyModule.setHasMissingTargets();
}
}
@@ -527,4 +528,9 @@ public final class StrictJavaDepsPlugin extends BlazeJavaCompilerPlugin {
return true;
}
+
+ @Override
+ public boolean runOnAttributionErrors() {
+ return true;
+ }
}