-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
have our build plugin dump out the "hidden" dependencies for other tools to use #7717
Comments
As long as the required Have you guys ever considered putting those |
No class from any of these |
I see. For a integration-test module like the one above for
Another variation might be to use I am just brainstorming here, but WDYT? |
cc @ppalaga |
As I said on the chat, a mojo that has to be called per itest is not what I'd prefer to make |
@ppalaga I think there are a few things at play here:
in both cases you'll still need a first build anyways,right ? |
If that info is supposed to be 100% generated, then an external file seems to be easier to maintain.
mvnd being on a very early stage, this is probably doable (cc @gnodet )
Sounds like a chicken-egg situation. I cannot use mvnd to run the plugin, because mvnd needs that info upfront. Having to care for committing the changes may be seen as annoying by contributors.
Yeah, you probably mean running a sequential mvn build before the real mvnd build. As I said, mvnd now has an option to call a groovy script to gather the additional rules. That call is once per the whole source tree. That allows mvnd to run always properly without any preparational builds. So I wish you could provide a way mvnd (and other tools) could call your code to gather the hidden dep info. Maybe mvnd could have an SPI and you'd provide a jar? |
your current solution in mvnd requires users to commit the files too - is there much difference here ?
yes, but it relies on assumptions on dir layout. We can probably make a command that does "mvn quarkus:dumpbuilddepinfo" or something that would just do the resolving needed to generate this info. Your mvnd approach will probably still be faster as it sound like it just relies on some very explicit rules that works exactly for quarkus tree structure. |
Yes, committing is required and we prefer to get away from that.
Yes, I agree it is a benefit. But the performance and scalability matter too. We aim at ~300 extensions in our repo. Getting the hidden deps info should ideally take less than a second for the whole source tree.
Yes, I admit this kind solution is hard to generalize so that it works for any repo hosting Quarkus extensions. Let's brainstorm about how we could do the following for any GAV, in a performat way without assuming anything about the given source tree:
IIRC, the current approach of the Quarkus plugin requires
Both 1. and 2. make it slow. Can't we avoid them somehow? |
@aloubyansky is the man for this. What i'm saying is that while we wait on that to be fixed (I don't think it can be easily with current "lazy resolve") we have a way to make it fast for 90+% of all use cases here so i think it is worth enabling this no matter what. |
There is quarkus-bootstrap:build-tree |
how do you use that ? just errors instantly for me with non-existent prefix error. |
io.quarkus:quarkus-bootstrap-maven-plugin, it's normally isn't added to the project poms. |
Of course, go ahead! |
Description
quarkus has its "shadow" dependencies to deployment that are not captured as maven dependencies hence tools like https://github.com/gnodet/mvnd and https://github.com/vackosar/gitflow-incremental-builder can't really figure out the most effective way to build quarkus extensions.
Idea is to have our maven plugin dump out the extra dependencies in a file or property.
i.e. on how mvnd today do it manually https://github.com/apache/camel-quarkus/blob/master/integration-tests/base64/pom.xml#L33-L39
The text was updated successfully, but these errors were encountered: