You've probably seen one or more module(s) that says in its documentation that there is a dependency to another module. Also, modules with Java actions often depend on Java libraries which are put in the userlib folder, but don’t get deleted when you remove the module or when you import a new version of the module which uses other (versions of) libraries.
My suggestion is to build in some kind or dependency management in the modeler for modules and their libraries. In the Java development community, developers often use Apache Maven or Gradle.
For example: I would like to be able to create my module and configure that it depends on the Community Commons module and the Apache Commons Lang Java library. The modeler then automatically downloads the dependencies for me. Unused Java libraries are removed from the userlib folder. After publishing or exporting the module, the modeler does the same thing on import of the module into another project.
Currently, after importing different (versions of) modules, the userlib directory can contain multiple versions of the same library.
For example the Apache Commons Codec library:
It's time consuming to figure out which one to keep.
would also be nice to include SASS dependancies in here
Well, that's awesome news Tom! Thanks!
As Mendix PM for the Runtime I can say this is a request we frequently here. To address this, we're planning to implement Java dependency management with Gradle. This enables automatically cleaning up the userlib folder, preventing a bloated deployment package and reducing possible conflicts between dependencies.
it would prevent errors like this:
https://forum.mendix.com/link/questions/86345
Real Low code users should not have problems with technical issues which can be prevented/solved
Thanks Andries for relating the ideas!
Blog URL has changed to: https://www.mansystems.com/blog/mendix/managing-java-dependencies-for-mendix-modules
will be a big improvement! A lot of projects have struggles with jars. Mansystems wrote a blog about this; https://www.mansystems.com/managing-java-dependencies-for-mendix-modules/