Replies: 1 comment 1 reply
-
While working on it, I came to similar ideas that this IMaven interface is doing too much and is making it harder to implement the flexibility. But I'm also unsure we want to just stick to IMavenExecutionContext as project specific stuff. Indeed, some methods like |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Currently there is a strong connection between
IMaven
andIMavenExecutionContext
and they even share packa-private methods to interact with each other. In #546 we implemented the idea to have anIMaven
per project but with more and more implementation of this I think this do not fit well and we actually need anIMavenExecutionContext
per project instead. I also noticed when now inspecting the "multiple plexus container" story that this do not maps well to the currentIMaven
entry point.The reason I think this is much better suited is, that
IMaven
holds a lot of stuff that is independent of the project (e.g. configuration loading/storing of models) and just for the matter of execute some stuff it delegates actually to theIMavenExecutionContext
and that would also much better match the maven execution workflow where one can be sure that one project is executed (but probably others in parallel) at one time.Thus I'd like to propose the following:
IMavenExecutionContext
, this could be archived for example by making thecontext()
function available, as this is some kind of "thread realm" you can connect to, this is just hidden currently and gives a false expression that a context is not needed when calling those methods.IMavenProjectFacade.getMaven()
and instead haveIMavenProjectFacade.getExecutionContext()
context()
method to theIMavenExecutionContext
that behaves as a replacement for the current entry-points inIMaven
for executing code with mavenPlease let me know what you think, I can try to provide some PRs with smaller increments if we can agree on this and think, even though this is a larger conceptual change, that this would make m2eclipse architecture much more clean and powerful and easier to match to the maven world.
Beta Was this translation helpful? Give feedback.
All reactions