I was wondering if someone knows a way to invoke a specific Maven module build from IntelliJ that will also build (or use already compiled classes from) modules on which it depends.
So for instance if I would like to only build the module "Model" in the picture, it seems reasonable for me to click the package step on it. But what it actually does it invokes the mvn package
step inside this specific module rather than mvn -am -pl module-name
from the root module, which also builds all the dependencies.
So is there something that I just don't know?
removed dead ImageShack link
I do it this way (Idea 8.1.4)
This is no different than running from command line. Which is what I am assuming you want.
You know the mvn command line well! To put this command line into IDEA, right click on your root project, one of the options will be "Create ... [package]".
Make these edits:
I know these aren't strictly goals, but it seems they are passed directly to maven. (Tested in IDEA 9.0.1)
When you run this command, it will now make Model - and the modules it depends on. Equally useful is the "-amd" to make all dependent moduels to verify that changes to Model haven't broken other modules. Having to create Run commands is not quite as elegant as the built-in UI, but you can associate these commands with hotkeys for quick access.
Hope this helps! mdma
PS: A small aside. Package is currently your default build goal - this may not work as intended with multi-module builds, since the latest built classes are not accessible to dependent modules - using install as the default goal is recommended to ensure the most recently built versions of artefacts are used by dependents. If you're concerned that installing might add a broken artefact to the local repo and break all your local builds, use a separate local repo for each project (use a custom settings.xml.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With