Add --manifest_file option into BazelJavaBuilder
Now Bazel JavaBuilder can specifiy a file as the manifest file, before
this it just creates the manifest file on the fly.
--
Change-Id: I515d63a008e2c9e9113c56d3646b8bc78b76b3a7
Reviewed-on: https://cr.bazel.build/8352
PiperOrigin-RevId: 145428635
MOS_MIGRATED_REVID=145428635
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
index ece6484..5ab5760 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
@@ -67,6 +67,8 @@
private final String classDir;
private final String tempDir;
+ private final String manifestFile;
+
private JacocoInstrumentationProcessor jacocoInstrumentationProcessor;
private final boolean compressJar;
@@ -156,6 +158,7 @@
this.extdir = optionsParser.getExtdir();
this.processorPath = optionsParser.getProcessorPath();
this.processorNames = optionsParser.getProcessorNames();
+ this.manifestFile = optionsParser.getManifestFile();
// Since the default behavior of this tool with no arguments is "rm -fr <classDir>", let's not
// default to ".", shall we?
if (optionsParser.getClassDir() != null) {
@@ -264,6 +267,10 @@
return tempDir;
}
+ public String getManifestFile() {
+ return manifestFile;
+ }
+
public JacocoInstrumentationProcessor getJacocoInstrumentationProcessor() {
return jacocoInstrumentationProcessor;
}
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java
index 7815284..735e3ec 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/OptionsParser.java
@@ -55,6 +55,7 @@
private String sourceGenDir;
private String generatedSourcesOutputJar;
private String manifestProtoPath;
+ private String manifestFile;
private final Set<String> sourceRoots = new HashSet<>();
private final List<String> sourceFiles = new ArrayList<>();
@@ -145,6 +146,9 @@
case "--output_manifest_proto":
manifestProtoPath = getArgument(argQueue, arg);
break;
+ case "--manifest_file":
+ manifestFile = getArgument(argQueue, arg);
+ break;
case "--source_roots":
collectFlagArguments(sourceRoots, argQueue, "-");
break;
@@ -372,6 +376,10 @@
return manifestProtoPath;
}
+ public String getManifestFile() {
+ return manifestFile;
+ }
+
public Set<String> getSourceRoots() {
return sourceRoots;
}
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
index eb03a9b..412b6b0 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
@@ -195,6 +195,7 @@
JarCreator jar = new JarCreator(build.getOutputJar());
jar.setNormalize(true);
jar.setCompression(build.compressJar());
+ jar.setManifestFile(build.getManifestFile());
for (String resourceJar : build.getResourceJars()) {
for (Path root : getJarFileSystem(Paths.get(resourceJar)).getRootDirectories()) {