playframework / playframework/play1
dependency resolution breaks precompiled
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.6k
- Forks
- 671
- Avg merge
- 12d 15h
- Merged PRs (30d)
- 1
Description
Play Version (1.5.x / etc)
latest github master
Operating System (Ubuntu 15.10 / MacOS 10.10 / Windows 10)
linux
JDK (Oracle 1.8.0_72, OpenJDK 1.8.x, Azul Zing)
16.0.2
Expected Behavior
Adding apache commons text 1.10.0 to my dependencies.yml works for precompiled
Actual Behavior
apache commons text can be used in everything but precompiled, because it's a dependency of play now. Once I precompile, I get a NoClassDefFoundError runtime (not during precompile).
I compared regular 1.7.1 with github master and with regular 1.7.1 this works, on master it breaks. Not sure if it's due to commons text being added to the dependencies or something else.
Also found out that doing a simple play dependencies --sync lists apache commons-text on regular 1.7.1 under Installing resolved dependencies,, while doing the same on github master does NOT list it as installed dependency.
I assume that this either has something to do with something that changed around the classloader, or it might always have been a bug and is just now visible due to the play framework adding apache commons text 1.10.0 as dependency.
I already tried just using force:true, but it did not change anything. Also, I couldn't really find much information on how the play dependency resolution is implemented - is it just running ivy commands underneath?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue using dependencies.yml with apache commons-text 1.10.0, then compare play dependencies --sync and precompiled runtime behavior between regular 1.7.1 and GitHub master. Trace the dependency-resolution or classloader path involved in precompilation; done means commons-text is available at runtime without NoClassDefFoundError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100