playframework / play1

Play framework
https://www.playframework.com/documentation/1.4.x/home
Other
1.58k stars 684 forks source link

dependency resolution breaks precompiled #1451

Open JohannesBeranek opened 1 year ago

JohannesBeranek commented 1 year ago

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?