Skip to content

kordamp/jdeps-gradle-plugin

Repository files navigation

jdeps-gradle-plugin

Build Status (travis) Build Status ASL2 Licensed download donations Patreon orange


Runs the jdeps command on the project’s output and all of its dependencies.

Usage

Option #1

buildscript {
    repositories {
        jcenter()
        gradlePluginPortal()
    }
    dependencies {
        classpath 'org.kordamp.gradle:jdeps-gradle-plugin:0.11.0'
    }
}
apply plugin: 'org.kordamp.gradle.jdeps'

Option #2

plugins {
    id 'org.kordamp.gradle.jdeps' version '0.11.0'
}

This will add a jdepsReport task to your build, which will analyze the main sourceSets and all dependencies found in the runtime configuration.

Configuration

Plugin configuration

The following properties can be specified in the jdeps task configuration

Name

Type

Default Value

verbose

boolean

false

summary

boolean

false

profile

boolean

false

recursive

boolean

false

jdkinternals

boolean

true

consoleOutput

boolean

true

reportsDir

File

"${buildDir}/reports/jdeps"

configurations

List<String>

['runtime']

classpaths

List<String>

['compileClasspath', 'runtimeClasspath', 'testCompileClasspath', 'testRuntimeClasspath']

sourceSets

List<String>

['main']

multiRelease

Integer

multiReleaseJars

Map<String, Integer>

[:]

You may configure multiple sourceSets and configurations, which will be evaluated in a single report. The following snippet shows how this plugin can be configured to run jdeps on production and test sources

jdepsReport {
    sourceSets = ['main', 'test']
    configurations = ['testRuntime']
}

MultiRelease JAR support

You may configure a version for the multiRelease property in which case this setting will be applied --multi-release <version> an all dependencies. If you need to check different releases per dependency then use the MultiReleaseJars property instead, for example

jdepsReport {
    multiReleaseJars = [
        'foo-1.0.0': 11,  // matches full name
        'bar.*': 12       // matches all files with 'bar' as prefix
    ]
}

MonkeyPatching the module

There are times when explicit modular settings may be needed to generate a jdeps report. You have the option to specify these settings using a moduleOptions extension on the `jdepsReport task, for example

jdepsReport {
    moduleOptions {
        addModules = ['com.acme.foo']
    }
}