Hi Patrick, Did you try injecting PlexusContainer? It is not the most sexy and modern way to do it but it fits quite well the scripting language since the container enables to lookup anything, it is just a matter of injecting it in the mojo then forwarding it to the script.
Side note: I assume a more modern solution is to inject the sisu BeanLocator but its package is not exposed to mojo (intentionally) so it can be trickier to play with ClassRealms to get it. I would also avoid the generation trick since it will also have pitfalls (leaks, manual registration, cache) and is not simpler. Hope it helps a bit. Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/application-development/java-ee-8-high-performance> Le mar. 22 nov. 2022 à 16:04, Patrick Plenefisch <[email protected]> a écrit : > Hi, > How can I query a specific dependency's *resolved* transitive dependencies > inside a class executed by a mojo? I have access to session and project, > and that's it. > I looked at DependencyGraphBuilder and the underlying > ProjectDependenciesResolver, but those seem to be injected. While I can > generate a class at runtime, I don't see how to access the injector even if > I have a class > > The environment I'm running inside is JRuby inside > > https://github.com/takari/polyglot-maven/blob/master/polyglot-maven-plugin/src/main/java/org/sonatype/maven/polyglot/plugin/ExecuteMojo.java > which is why I can't just use an @Inject annotation. But, being JRuby, I > can easily generate classes at runtime if necessary. > > How can I go about this? > > Thanks, > > Patrick >
