Upgrading from 1.0 or older

There have been a number of significant changes in 2.0.

Applying the plugin

There is only plugin now, called org.ysb33r.ivypot. This must be applied to the root project and every subproject from which dependency metadata could be collected.

Configuration

The DSL block of the syncRemoteRepositories task is no longer used for configuration. All configuration is now done in an ivypot extension.

Caching happens in root project

If you previously used a subproject to build the off-line repository, that project can no longer be used. All collection happens in the root project.

Define interesting subprojects

Just applying the plugin in a subproject is not enough - the root project must also be told to inspect the subproject. This is done via the ivypot.projectsWithDependencies predicate. In a single project setup, this is not necessary and the mentioned DSL entry does not exist.

Repository declaration

It is no longer possible to manually declare repositories in the syncRemoteRepositories task. In a single project or subprojects of a multi-projects all Ivy & Maven (except MavenLocal) repositories are automatically collected. Certain repositories can be excluded via the ivypot.repositories.excludeByName DSL entity. For custom Ivy repositories, the ivypot.repositories,forIvy DSL block must be used to define patterns.

Configurations

By default, all configurations are included. To only include certain configurations in a single project or subprojects of a multi-project, use ivypot.configurations.named and ivypot.configurations.filter.

Buildscript

Buildscript dependencies are no longer included. If you really need this rare use case, you’ll need to define a configuration that extends buildscript.dependencies.classpath.

Binary repositories

There is no need for an additional plugin - everything is inside org.ysb33r.ivypot. Declare binary repositories in ivypot.binaryRepositories and declare binaries in ivypot.cacheBinaries.