desugar

null

License

License

GroupId

GroupId

com.viridiansoftware
ArtifactId

ArtifactId

desugar
Last Version

Last Version

1.0.1
Release Date

Release Date

Type

Type

zip
Description

Description

desugar
null
Project URL

Project URL

https://github.com/viridiansoftware/desugar
Source Code Management

Source Code Management

https://github.com/viridiansoftware/desugar.git

Download desugar

Dependencies

compile (8)

Group / Artifact Type Version
com.google.code.findbugs : jsr305 jar 3.0.1
com.google.guava : guava jar 28.0-jre
org.ow2.asm : asm jar 7.1
org.ow2.asm : asm-tree jar 7.1
org.ow2.asm : asm-commons jar 7.1
com.google.errorprone : error_prone_annotations jar 2.0.21
com.google.dagger : dagger jar 2.23.2
com.google.auto.value : auto-value-annotations jar 1.6.5

test (4)

Group / Artifact Type Version
junit : junit jar 4.12
com.google.truth : truth jar 0.45
org.ow2.asm : asm-util jar 7.1
com.google.guava : guava-testlib jar 28.0-jre

Project Modules

There are no modules declared in this project.

desugar

Standalone version of Android's desugar tool that works for both Android and JRE

Notes

To allow for easier updates, the command line arguments are preserved from the original tool. This means the --min_sdk_version argument expects an Android version. Please see the following table for the corresponding JRE versions.

Java Version Android Version
6 1
7 19
8 26
11 28

Usage

.\bin\desugar.bat
bin/desugar

  --[no]allow_empty_bootclasspath (a boolean; default: "false")
  --[no]best_effort_tolerate_missing_deps (a boolean; default: "true")
    Whether to tolerate missing dependencies on the classpath in some cases.
    You should strive to set this flag to false.
  --bootclasspath_entry (a valid filesystem path; may be used multiple times)
    Bootclasspath that was used to compile the --input Jar with, like javac's -
    bootclasspath flag (required).
  --classpath_entry (a valid filesystem path; may be used multiple times)
    Ordered classpath (Jar or directory) to resolve symbols in the --input Jar,
    like javac's -cp flag.
  --[no]copy_bridges_from_classpath (a boolean; default: "false")
    Copy bridges from classpath to desugared classes.
  --[no]core_library (a boolean; default: "false")
    Enables rewriting to desugar java.* classes.
  --[no]desugar_interface_method_bodies_if_needed (a boolean; default: "true")
    Rewrites default and static methods in interfaces if --min_sdk_version <
    24. This only works correctly if subclasses of rewritten interfaces as well
    as uses of static interface methods are run through this tool as well.
  --[no]desugar_supported_core_libs (a boolean; default: "false")
    Enable core library desugaring, which requires configuration with related
    flags.
  --[no]desugar_try_with_resources_if_needed (a boolean; default: "true")
    Rewrites try-with-resources statements if --min_sdk_version < 19.
  --[no]desugar_try_with_resources_omit_runtime_classes (a boolean; default: "false")
    Omits the runtime classes necessary to support try-with-resources from the
    output. This property has effect only if --
    desugar_try_with_resources_if_needed is used.
  --dont_rewrite_core_library_invocation (a string; may be used multiple times)
    Method invocations not to rewrite, given as "class/Name#method".
  --[no]emit_dependency_metadata_as_needed (a boolean; default: "false")
    Whether to emit META-INF/desugar_deps as needed for later consistency
    checking.
  --emulate_core_library_interface (a string; may be used multiple times)
    Assume the given java.* interfaces are emulated.
  --input [-i] (a valid filesystem path; may be used multiple times)
    Input Jar or directory with classes to desugar (required, the n-th input is
    paired withthe n-th output).
  --[no]legacy_jacoco_fix (a boolean; default: "false")
    Consider setting this flag if you're using JaCoCo versions prior to 0.7.9
    to work around issues with coverage instrumentation in default and static
    interface methods. This flag may be removed when no longer needed.
  --min_sdk_version (an integer; default: "19")
    Minimum targeted sdk version.  If >= 24, enables default methods in
    interfaces.
  --[no]only_desugar_javac9_for_lint (a boolean; default: "false")
    A temporary flag specifically for android lint, subject to removal anytime
    (DO NOT USE)
  --output [-o] (a valid filesystem path; may be used multiple times)
    Output Jar or directory to write desugared classes into (required, the n-th
    output is paired with the n-th input, output must be a Jar if input is a
    Jar).
  --retarget_core_library_member (a string; may be used multiple times)
    Method invocations to retarget, given as "class/Name#member-
    >new/class/Name".  The new owner is blindly assumed to exist.
  --[no]rewrite_calls_to_long_compare (a boolean; default: "false")
    Rewrite calls to Long.compare(long, long) to the JVM instruction lcmp
    regardless of --min_sdk_version.
  --rewrite_core_library_prefix (a string; may be used multiple times)
    Assume the given java.* prefixes are desugared.
  --[no]verbose [-v] (a boolean; default: "false")
    Enables verbose debugging output.

As Dependency

Gradle

compile "com.viridiansoftware:desugar:1.0.0"

Maven

<dependency>
    <groupId>com.viridiansoftware</groupId>
    <artifactId>desugar</artifactId>
    <version>1.0.0</version>
</dependency>
com.viridiansoftware

Viridian Software

Versions

Version
1.0.1
1.0.0