Awesome. That's exactly what I was looking for. Will try it out in the morning
On Wed, Mar 9, 2022 at 7:08 PM Thomas Broyer <t.bro...@gmail.com> wrote: > Le mer. 9 mars 2022 à 23:48, Nils Breunese <n...@breun.nl> a écrit : > > > Steve Hannah <st...@weblite.ca> wrote: > > > > > I'm trying to achieve better integration into VSCode with my project > > > archetype. The way that the VSCode maven extension seems to prefer to > > work > > > is for users to explicitly "run" a goal from a plugin of the project. > > > > > > You can see the VSCode instructions for running a JavaFX app as an > > example > > > here: > > > > > > https://code.visualstudio.com/docs/java/java-gui#_run-the-javafx-application > > > > > > Basically, the user expands the Maven > Project > Plugins > JavaFX > node, > > > then right clicks the "javafx:run" goal, which is defined in the JavaFX > > > maven plugin. > > > > > > In the JavaFX example, that javafx:run goal actually spawns a new > process > > > that runs the app, which seems to break debugging. > > > > > > With my own projects, I generally bind my "Run" goal to the "verify" > > phase > > > so that running "mvn verify" will run my project. This work OK in > > IntelliJ > > > and NetBeans (although I need to do some contortions to make debugging > > > work), but doesn't seem to mesh with VScode's way of doing things. > > > > > > What I would like is to create a custom "run" goal in my plugin so that > > > VSCode can run or debug this goal - and the goal should trigger > > everything > > > up to the "verify" lifecycle - without having to spawn a new process. > > > > > > I've been hitting walls in maven for years now, and I have a feeling > that > > > this is not possible. Can someone either set me straight (i.e. inform > me > > > that it is possible), or confirm that, indeed, it is not possible? > > > > The Maven build lifecycle consists of phases [0] and you can bind plugin > > goals to phases. As far as I know it doesn’t work the other way around, > so > > you can’t make a plugin goal execute particular phases, which seems to be > > what you’re asking. It should be the other way around: you can associate > a > > plugin goal with a phase and then when you execute that phase all > previous > > phases will have been executed, and your plugin goal will be executed. > > > > This is not entirely true. A mojo can be annotated with @Execute() to > execute a lifecycle up to a given phase before the mojo itself is executed. > That's the difference between jar:jar and jar:jar-no-fork for instance. > > > > -- Steve Hannah Web Lite Solutions Corp.