apache / apache/lucene

Use ivy cachepath and cachefileset instead of ivy retrieve [LUCENE-3943]

Open
#5,016 16 comments 0 reactions 0 assignees View on GitHub
legacy-jira-priority:Major tool:build type:enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.