Details
-
Type:
Bug
-
Status:
Resolved
-
Resolution: Fixed
-
Affects Version/s: 0.9
-
Fix Version/s: 1.0-milestone-8
Description
If you run a multiproject build and different subprojects have dependencies to the same artifact that is stored in a remote repository, the build fails if the remote artifact was updated while running the multiproject.
The stacktrace looks like this:
{{
09:14:09.609 [main] ERROR org.gradle.logging.IvyLoggingAdaper - :::: ERRORS
09:14:09.609 [main] ERROR org.gradle.logging.IvyLoggingAdaper - Couldn't delete outdated artifact from cache: C:\Dokumente und Einstellungen\Hudson\.gradle\cache\org.acme\SimpleUserService\jars\SimpleUserService-0.8-SNAPSHOT.jar
09:14:09.609 [main] ERROR org.gradle.logging.IvyLoggingAdaper - Couldn't delete outdated artifact from cache: C:\Dokumente und Einstellungen\Hudson\.gradle\cache\org.acme\SimpleConfiguration\jars\SimpleConfiguration-0.8-SNAPSHOT.jar
09:14:09.609 [main] ERROR org.gradle.logging.IvyLoggingAdaper - Couldn't delete outdated artifact from cache: C:\Dokumente und Einstellungen\Hudson\.gradle\cache\org.acme\PersistenceLayer\jars\PersistenceLayer-0.8-SNAPSHOT.jar
09:14:09.609 [main] INFO org.gradle.logging.IvyLoggingAdaper -
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
09:14:09.609 [main] DEBUG o.g.a.i.a.i.DefaultIvyDependencyResolver - Timing: Ivy resolve took 8.515 secs
09:14:09.625 [main] DEBUG org.gradle.api.tasks.testing.Test - Finished tests
09:14:09.625 [main] INFO o.g.logging.ProgressLoggingBridge -
09:14:09.625 [main] DEBUG o.g.a.i.tasks.SkipTaskExecuter - Finished executing task ':Kernel:test'
09:14:09.625 [main] INFO o.g.logging.ProgressLoggingBridge -
09:14:09.719 [main] ERROR org.gradle.launcher.Main -
FAILURE: Build failed with an exception.
}}
Gradle should always resolve a dynamic dependency to exactly the
same set of artifacts during the entire life of the build, regardless of
which project or configuration the dependency is included in.
Your issue should be fixed in trunk for all practical purposes (I guess you are using preview-3). Ivy (and thus preview-3) always checks Maven snapshots for being up to date. This can cause trouble and is a big performance issue. In trunk the up to date check for snapshots is now configurable (default is daily). Unless you are doing a build around midnight, everything should work fine.
But I don't close the issue as we want to have a more bullet proof solution for one instance of a multi-project build.