Gradle plugin that tells you what libs have new versions on Maven Central, so when you come back to a project, you know what you can update.
You run the plugin:
gradle uptodate
And you get for example this:
New versions available:
'com.google.guava:guava:17.0'
'org.hibernate:hibernate-entitymanager:4.3.5.Final'
'org.hibernate:hibernate-core:4.3.5.Final'
Latest version is . You can change +
to some other version to have a concrete one instead of a latest one.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.ofg:uptodate-gradle-plugin:+'
}
}
apply plugin: 'com.ofg.uptodate'
And now you can run the plugin with
gradle uptodate
By default all project configurations are checked for updates but you can exclude any of them.
uptodate {
excludeConfigurations 'providedCompile', 'providedRuntime'
}
If you want to check only specific configurations it's also possible, simply include those configurations.
uptodate {
includeConfigurations 'compile'
}
Please note that excludes take precedence over includes.
You can also provide patterns of versions that you would like to exclude. There are also some patterns (like BETA, RC, etc.) defined in com.ofg.uptodate.UptodatePluginExtension.VersionPatterns
By default following patterns are excluded: ALPHA, BETA, RC, CR, SNAPSHOT, MILESTONE, RELEASE( i.e. r08)
import static com.ofg.uptodate.VersionPatterns.*
uptodate {
setExcludedVersionPatterns ALPHA, BETA, '.*-demo-?\\d*$'
}
You can also add your own patterns to the already excluded version patterns.
uptodate {
addExcludedVersionPatterns '.*-demo-?\\d*$'
}
You can change connection timeout (5000 ms by default) and/or limit simultaneous HTTP connections (8 connections by default) by connectionTimeout and simultaneousHttpConnections properties respectively.
uptodate {
connectionTimeout 10000
simultaneousHttpConnections 4
}
The proxy settings can be configured by using one of the following approaches:
Make sure to have the following properties configured when running the plugin:
http.proxyHost=localhost
http.proxyPort=15000
https.proxyHost=localhost
https.proxyPort=15000
Add the proxyHostname, proxyPort (defaults to -1, which is the default port of the scheme) and proxyScheme (defaults to 'http') properties to the plugin configuration.
uptodate {
proxyHostname 'localhost'
proxyPort 15000
proxyScheme 'http'
}
By default (sub)project names are not printed so that you can easily operate on uptodate task output (e.g.: sort | uniq
) but you can include project names in update headers by:
uptodate {
reportProjectName true
}
You can add the possibility to break the build for new versions of dependencies by applying the following closure
uptodate {
breakTheBuild {
enabled = true
}
}
If turned on the default behaviour is such that if ANY new dependency is found then the build will be broken.
You can customize the inclusion and exclusion patterns by the following methods:
uptodate {
breakTheBuild {
enabled = true
includePatterns('regex for dependency group or name to break the build if newer version is found', 'another regex')
excludePatterns('regex for dependency group or name NOT to break the build if newer version is found', 'another regex')
}
}
To make the functionality available on demand you can apply for example a project property:
uptodate {
breakTheBuild {
enabled = project.hasProperty('uptodateBuildBreakingEnabled')
}
}
You can run the plugin automatically on every build, just by adding to your build.gradle
build.dependsOn 'uptodate'
But be warned, this will slow down the build by a few seconds (required to hit maven remote repo with http), so it is not suggested unless you don't care about build time.
To see what has changed in recent versions of Uptodate plugin see the CHANGELOG
- Update in
build.gradle
version - Build version locally
./gradlew clean build
- Set bintrayUser and bintrayKey in your system properties
- Publish changes using
./gradlew bintrayUpload
- Tag version using
git tag <version>
- Push tags to github
git push --tags
- Update to next version with
-SNAPSHOT
suffix