在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):patrikerdes/gradle-use-latest-versions-plugin开源软件地址(OpenSource Url):https://github.com/patrikerdes/gradle-use-latest-versions-plugin开源编程语言(OpenSource Language):Groovy 100.0%开源软件介绍(OpenSource Introduction):Gradle Use Latest Versions PluginA Gradle plugin that updates module and plugin versions in your *.gradle or *.gradle.kts files to the latest available versions. This plugin depends on the Gradle Versions Plugin. Maintainer: Patrik Erdes UsageApply this plugin and the Gradle Versions Plugin. Include in your plugins {
id 'se.patrikerdes.use-latest-versions' version '0.2.18'
id 'com.github.ben-manes.versions' version '0.41.0'
} or buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
jcenter()
}
dependencies {
classpath "se.patrikerdes:gradle-use-latest-versions-plugin:0.2.18"
classpath 'com.github.ben-manes:gradle-versions-plugin:0.41.0'
}
}
apply plugin: 'com.github.ben-manes.versions'
apply plugin: 'se.patrikerdes.use-latest-versions'
Usage for Gradle Kotlin DSLInclude in your plugins {
id("se.patrikerdes.use-latest-versions") version "0.2.18"
id("com.github.ben-manes.versions") version "0.41.0"
} or buildscript {
repositories {
maven {
maven { url = uri("https://plugins.gradle.org/m2/") }
}
jcenter()
}
dependencies {
classpath("gradle.plugin.se.patrikerdes:gradle-use-latest-versions-plugin:0.2.18")
classpath("com.github.ben-manes:gradle-versions-plugin:0.41.0")
}
}
apply {
plugin("com.github.ben-manes.versions")
plugin("se.patrikerdes.use-latest-versions")
}
Multi-project usageIn case you have a Multi-project build and you have some common dependency configuration in some common file in root project
(like *.gradle file), you should apply plugin to all projects. Easiest way to do this is with
This is because In case you handle dependencies per project separately this is not needed and you can apply plugin just to selected projects. ExampleGiven this build.gradle file: plugins {
id 'se.patrikerdes.use-latest-versions' version '0.2.18'
id 'com.github.ben-manes.versions' version '0.19.0'
}
apply plugin: 'java'
repositories {
mavenCentral()
}
ext.log4jversion = '1.2.16'
ext.codecVersion = '1.9'
def commonsLoggingVersion = "1.1.2"
dependencies {
testCompile 'junit:junit:4.0'
compile "log4j:log4j:$log4jversion"
compile "commons-codec:commons-codec:" + codecVersion
compile group: 'commons-lang', name: 'commons-lang', version: '2.4'
compile group: 'commons-logging', name: 'commons-logging', version: commonsLoggingVersion
} If you run
Your plugin and module dependencies in build.gradle will be updated – both inline version number and versions based on variables – and you build.gradle file will look like this: plugins {
id 'se.patrikerdes.use-latest-versions' version '0.2.18'
id 'com.github.ben-manes.versions' version '0.41.0' // <- Updated
}
apply plugin: 'java'
repositories {
mavenCentral()
}
ext.log4jversion = '1.2.17' // <- Updated
ext.codecVersion = '1.11' // <- Updated
def commonsLoggingVersion = "1.2" // <- Updated
dependencies {
testCompile 'junit:junit:4.12' // <- Updated
compile "log4j:log4j:$log4jversion" // <- The variable above was updated
compile "commons-codec:commons-codec:" + codecVersion // <- The variable above was updated
compile group: 'commons-lang', name: 'commons-lang', version: '2.6' // <- Updated
compile group: 'commons-logging', name: 'commons-logging', version: commonsLoggingVersion // <- The variable above was updated
} TasksuseLatestVersionsgradle useLatestVersions
# Configuration and default values:
useLatestVersions {
# A whitelist of dependencies to update, in the format of group:name
# Equal to command line: --update-dependency=[values]
updateWhitelist = []
# A blacklist of dependencies to update, in the format of group:name
# Equal to command line: --ignore-dependency=[values]
updateBlacklist = []
# When enabled, root project gradle.properties will also be populated with
# versions from subprojects in multi-project build
# Equal to command line: --update-root-properties
updateRootProperties = false
# By default plugin tries to find all relevant gradle files (e.g. *.gradle, gradle.properties etc).
# This can be slow in some cases when project has a lot of gradle files. For example when using conventions
# in buildSrc. With this option you can specify what files should plugin search and check. Plugin will ignore
# files that don't exist. Empty list means use default strategy. File paths are relative to project dir.
#
# Example:
# versionFiles = ["gradle.build", "gradle.properties"]
# Will check just $projectDir/gradle.build and $projectDir/gradle.properties
#
# Note:
# You always have to specify file that has dependencies in some common dependency format with artifact coordinates,
# e.g. compileOnly "group:module:version" or compileOnly("group:module:version") or val dependency = "group:module:version" etc.
# For example if you set just versionFiles = ["gradle.properties"] this won't work, since plugin
# won't be able to correlate variable with artifact coordinates.
#
# Equal to command line: --version-files=[values]
versionFiles = []
# List of root project files to update when updateRootProperties is enabled.
# `build.gradle` is not an acceptable entry here as it breaks other expected
# functionality. Version variables in `build.gradle` need to be moved into
# a separate file which can be listed here.
# Equal to command line: --root-version-files=[values]
rootVersionFiles = ['gradle.properties']
}
Updates module and plugin versions in all *.gradle files in the project root folder or any subfolder to the latest
available versions. This task depends on the useLatestVersionsCheck# gradle useLatestVersions && gradle useLatestVersionsCheck This task will succeed if all available updates were successfully applied by
Updating only specific dependencies (whitelist)If your Gradle version is 4.6 or higher, you can pass the # gradle useLatestVersions --update-dependency junit:junit --update-dependency com.google.guava && gradle useLatestVersionsCheck --update-dependency junit:junit --update-dependency com.google.guava Ignore specific dependency updates (blacklist)If your Gradle version is 4.6 or higher, you can pass the # gradle useLatestVersions --ignore-dependency junit:junit --ignore-dependency com.google.guava && gradle useLatestVersionsCheck --ignore-dependency junit:junit --ignore-dependency com.google.guava Supported dependency formatsDependencies stated in the following formats should cause the version to be successfully updated by the
Plugin dependenciesPlugin dependencies can only be updated in Gradle 4.4+. The plugins DSL only allows a strict format, e.g. only string literals for the version number, so there is basically only one format to support. plugins {
id 'se.patrikerdes.use-latest-versions' version '0.1.0'
} Module dependenciesString formatdependencies {
compile "log4j:log4j:1.2.15"
testCompile 'junit:junit:4.0'
} Map formatCurrently only if the order is dependencies {
testCompile group: 'junit', name: 'junit', version: '4.0'
} Module dependencies based on variables
String formatext.junit_version = '4.0'
dependencies {
testCompile "junit:junit:$junit_version"
} def junit_version = '4.0'
dependencies {
testCompile "junit:junit:${junit_version}"
} ext.junit_version = '4.0'
dependencies {
testCompile "junit:junit:" + junit_version
} Map formatCurrently only if the order is ext.junit_version = '4.0'
dependencies {
testCompile group: 'junit', name: 'junit', version: junit_version
} CompatibilityGradle version: 2.8 - 4.10.2 (Updating plugin dependencies only work in 4.4+) Instructions for building this plugin from source
buildscript {
repositories {
mavenLocal()
}
dependencies{
classpath group: 'se.patrikerdes',
name: 'gradle-use-latest-versions-plugin',
version: '0.2.18'
}
}
apply plugin: se.patrikerdes.UseLatestVersionsPlugin
FAQHow do I exclude alpha/beta/rc versions?The Versions plugin can be configured to achieve this, it is documented in the Versions plugin README Where does the name "Use Latest Versions" come from?From the Maven Versions Plugin goal called use-latest-versions Changelog0.2.18Fixed issue #57, kotlin("plugin.spring") isn't updated (ghmulti) 0.2.17PR #53, Recognise kotlin plugin format, e.g. 'kotlin("jvm") version "1.5.10"' (MxKaras) PR #52, Fix "The variable ... is assigned more than once" message if variable has another as a suffix (xenomachina) 0.2.16PR #49, Add option to specify version files (asodja) 0.2.15PR #45, Adding list of root files with variables to update (tony-schellenberg) 0.2.14PR #41, Add support to update root gradle.properties (asodja) 0.2.13PR #35, Add flag to ignore specific dependency updates (blacklist) (Balthasar Biedermann) PR #36, Allow setting of outputDir and reportfileName (dependencyUpdates) (Balthasar Biedermann) 0.2.12PR #27, Add flag to update only explicitly listed dependencies. (Ian Kerins) 0.2.11Fixed issue #25, Don't crash when dependencyUpdates/report.json has a version range 0.2.10Fixed issue #24, Allow for non-standard buildDir setting 0.2.9PR #23, Changes to address issues with Gradle multi-project builds. (b-behan) Support com.github.ben-manes.versions version 0.21.0 0.2.8PR #18, Support kt files within buildSrc. (Balthasar Biedermann) Fixed issue #14, Kotlin dsl separate named and unnamed group name and version. (Balthasar Biedermann) Fixed issue #15, changed the README to contain the correct way to use the plugin in a buildscript block. Made the plugin work on Windows. 0.2.7Fixed issue 10, Multiple versions in gradle.properties (Balthasar Biedermann) PR #12, Support dependencySet of Spring Dependency management plugin. (Balthasar Biedermann) PR #13, Support classifier and extension in dependencies. (Balthasar Biedermann) 0.2.6Fixed issue 7, Update version variables in gradle.properties file, again. (0.2.4 didn't fix #7) 0.2.5Fixed issue 8, Support for string interpolation with curly braces ${} 0.2.4Fixed issue 7, Update version variables in gradle.properties file. 0.2.3Fixed |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论