-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
What you were trying to do
Get a module's sources for development and play testing.
What actually happened
Got module's sources, built module, but the game was not able to resolve the module's dependencies in the Advanced Game Setup screen.
How to reproduce
- start with empty
modules/
workspace - groovyw module get JoshariasSurvival
- gradlew jar
- gradlew game
- create new game, advanced setup, observe JoshariasSurvival is lacking its transient dependencies
Log details and game version
I'm not actually watching this error happen right now, this report is assembled from Niruandaleth's notes and my understanding of gradle.
Discussion
I expect this started when Core Upheaval removed transient dependencies from many module.txt at around the same time as the Gradle 6.4 branch made some adjustments to how it treats compile-time dependencies.
The thing that makes the .jar
files show up in the modules/
directory when a module is built from source is the RemoteModuleGatherer
we have in our gradle configuration.
The crux of the issue is here:
Line 262 in 9575439
dependencies.name == "compileClasspath") { |
it's only checking the compile-time classpath, which don't include the transient dependencies.
Changing that to include the run-time classpath is a small change. However, I'm not fully confident that the PC facade knows it needs to resolve the runtime classpath of the modules before it starts. If it doesn't, there will be nothing for the RemoteModuleGatherer to observe and copy.