Giter Club home page Giter Club logo

dependency-analysis-android-gradle-plugin's Introduction

Latest version
Latest snapshot
Build status

Detect unused and misused dependencies

The Dependency Analysis Gradle Plugin (née Dependency Analysis Android Gradle Plugin) detects the following:

  1. Unused dependencies.

  2. Used transitive dependencies (which you may want to declare directly).

  3. Dependencies declared on the wrong configuration (api vs implementation vs compileOnly, etc.).

  4. Unnecessary plugins (currently only kapt).

As a side effect, the plugin can also tell you your project’s ABI, and produces graphviz files representing various views of your dependency graph, among other things. These side effects are currently mostly undocumented internal behaviors, but they may be interesting for some advanced users.

Add to your project and use

For detailed instructions, see the wiki

The simplest approach is to add the following:

root build.gradle
plugins {
  id 'com.autonomousapps.dependency-analysis' version "<<latest_version>>"
}

For a quick start, just run the following:

./gradlew buildHealth

Basic configuration

For detailed information on how to configure the plugin, see the wiki.

For Groovy DSL, you can configure the extension very simply:

build.gradle
dependencyAnalysis {
  // configure goes here
}

Or for Kotlin DSL:

build.gradle.kts
configure<com.autonomousapps.DependencyAnalysisExtension> {
  // configure goes here
}

Two models

At time of writing, there are two distinct models available for conducting dependency analysis. By default, from version 1.0.0-rc01, the plugin uses the "new model." With that version, you may switch to the "old model" via the system property dependency.analysis.old.model=true. That is also the final version of the plugin that support use of the old model. From 1.0.0-rc02, the old model is no longer available.

dependency-analysis-android-gradle-plugin's People

Contributors

astro03 avatar autonomousapps avatar js92 avatar martinbonnin avatar mvegter avatar nsk-mironov avatar pavlospt avatar stephanenicolas avatar subhrajyotisen avatar tronku avatar vlsi avatar zacsweers avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.