Use ivy cachepath and cachefileset instead of ivy retrieve [LUCENE-3943]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
In #5003 we moved to resolving all external dependencies using ivy:retrieve. This process places the dependencies into the lib/ folder of the respective modules which was ideal since it replicated the existing build process and limited the number of changes to be made to the build.
However it can lead to multiple jars for the same dependency in the lib folder when the dependency is upgraded, and just isn't the most efficient way to use Ivy.
Uwe pointed out that _when working from svn or in using src releases_ we can remove the ivy:retrieve calls and make use of ivy:cachepath and ivy:cachefileset to build our classpaths and packages respectively, which will go some way to addressing these limitations – however we still need the build system capable of putting the actual jars into specific lib folders when assembling the binary artifacts
---
Migrated from [LUCENE-3943](https://issues.apache.org/jira/browse/LUCENE-3943) by Chris Male, updated Apr 03 2012
Contributor guide
Research direction
Start by inspecting the build configuration that invokes ivy:retrieve and the module lib/ folders it populates. Compare the requested ivy:cachepath and ivy:cachefileset flow for SVN or source releases, then verify that binary artifact assembly still places the required jars in the specific lib folders.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100