Steve Hannah <st...@weblite.ca> wrote: > VSCode does let you execute phases, > but the "phase" model doesn't work well when you are working on > desktop application. You expect there to be an action to "run" the app and > a separate action to "build" the app.
I don’t generally work on desktop application projects, but I don’t think it should be fundamentally different from working on web server applications. The Maven build lifecycle, like the name suggests, is aimed at building projects. While a plugin goal might let you run something there is no specific build lifecycle phase for that. I generally let my IDE do the running, instead of involving Maven. But you can pass both a phase and a plugin goal to Maven to run something, for instance like this: ./mvnw package spring-boot:run Or like this: ./mvnw verify exec:java I don’t know about VSCode, but an IDE should generally know when to build a project (via Maven or otherwise) when you run it. Running the built project can also be done without Maven, which is generally what I do when not using an IDE: Build: ./mvnw verify Run: java -jar target/my-app-1.0.0-SNAPSHOT.jar > Neither of those are in the > lifecycle. What I typically do is bind the "run" to the lifecycle so that > it will happen if I do `mvn verify`. Maven let’s you do that of course, but semantically that is a bit of a hack, because the verify phase’s role is to ‘run any checks on results of integration tests to ensure quality criteria are met’ [0]. By the way, Maven let’s you define a default goal [1], which can also include phases and you could set to something like ‘verify exec:java’, so that when you run Maven without specifying any specific phases or goals, that will be executed. Maybe that would be helpful for you? Nils. [0]: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html [1] https://maven.apache.org/pom.html#Build_Element