Skip to content
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

create-extension Maven mojo should allow creating from scratch #3321

Closed
ppalaga opened this issue Jul 24, 2019 · 9 comments · Fixed by #6748
Closed

create-extension Maven mojo should allow creating from scratch #3321

ppalaga opened this issue Jul 24, 2019 · 9 comments · Fixed by #6748
Assignees
Labels
area/maven kind/enhancement New feature or request
Milestone

Comments

@ppalaga
Copy link
Contributor

ppalaga commented Jul 24, 2019

A followup of #2113 .

create-extension Maven mojo added via #3191 allows creating new extension modules inside an existing source tree. It should be enhanced to be able to create new extension projects from scratch.

cc @aloubyansky @Dufgui

@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 2, 2019

I wonder if this "from scratch" scenario should create a source tree for hosting

(a) a single extension

or

(b) multiple extensions (similar to camel-quarkus).

While I have quite a clear idea about (b), what would (a) look like?

Maybe something like this?

parent
 `- runtime
 `- deployment
 `- integration-tests
     `- it1
     `- it2

@aloubyansky
Copy link
Member

I think it should be (a) and your sketch looks good to me.

@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 2, 2019

Maybe it would be even enough to generate a single itest

parent
 `- runtime
 `- deployment
 `- integration-test

Do we already have a pom here in Quarkus that can serve as a parent of the parent?

@aloubyansky
Copy link
Member

I would say, no, we don't. And it's a question what it should be if we want to offer one. I did prototype it in platform but currently I pushed one only for the applications. Partly because I was not sure whether it should live in the platform or on the core (or in both, e.g. platform extending the core). E.g. in case of Camel you are depending on the core and that makes good sense. However if your extension depended on other extensions that were not part of core, perhaps the platform would make sense in that case.

@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 2, 2019

Implementation of the "from scratch" scenario would be easier if there was a parent to inherit from. I'd expect it to manage all necessary plugins and perhaps also define the quarkus.version property so that the external extension projects can use it to import the runtime and deployment BOMs.

Quarkus core sounds like the most natural home for it. If the platform should aggregate the core plus some external extensions, then this grand parent pom cannot live there, because it would be a circular dep. I think external deps depending among each other will be rather rare, but with the grand parent pom in core still possible.

@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 5, 2019

I am going to propose a minimalistic grand parent for third party extension projects here under quarkus unless somebody has a better idea?

ppalaga added a commit to ppalaga/quarkus that referenced this issue Aug 5, 2019
@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 5, 2019

@aloubyansky could you please have a look at the external-parent in #3427 ?

@ppalaga
Copy link
Contributor Author

ppalaga commented Aug 9, 2019

Blocked by #1594

@stale
Copy link

stale bot commented Nov 13, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you!
We are doing this automatically to ensure out-of-date issues does not stay around indefinitely.
If you believe this issue is still relevant please put a comment on it on why and if it truly needs to stay request or add 'pinned' label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/maven kind/enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants