google / bazel-common

Common functionality for Google's open-source libraries that are built with bazel.
Apache License 2.0
87 stars 40 forks source link

jarjar_runner.sh fails incorrectly on jars that contain files ending in ~ #137

Open thirtyseven opened 3 years ago

thirtyseven commented 3 years ago

Issue

When jarjar_runner.sh processes a jar that contains a file ending in ~, it fails.

BUILD.bazel:

jarjar_library(
        name="test_shaded",
        rules=[],
        jars=["test2.jar"]
)

Steps to reproduce:

mkdir jar
cd jar
touch test~ build-data.properties
jar cf test2.jar *
bazel build :test_shaded
INFO: Analyzed target //:test_shaded (0 packages loaded, 0 targets configured).
INFO: Found 1 target...

ERROR: /Users/*snip*/BUILD.bazel:11:15: Action test_shaded.jar failed: (Exit 1): bash failed: error executing command /bin/bash -c ... (remaining 1 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
Error: duplicate files in merged jar: test~
Target //:test_shaded failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.191s, Critical Path: 0.09s
INFO: 2 processes: 2 internal.
FAILED: Build did NOT complete successfully

Possible solution

It should be simple to use comm to filter out any files from duplicate_files that are present in any of the source jars.

mmarquezvacas commented 2 years ago

Hello, I'm facing the same the issue. Does somebody know how can I solve it?