I have 3 maven projects
- WebComponents
- DataComponents
- ServiceComponents
When i build each of the projects i have to go into each folder and run mvn clean install on each of the projects.
I have looked into multi module projects and most of the resources i see suggest that i have to make a change to the structure of my existing projects.
Is it possible to have a new project that will build each of the independent projects without me having to make any changes to anything in the existing project including their individual pom files?
I can probably achieve this by writing a simple batch file that builds every projects but is it possible using Maven?
You're looking for Maven aggregation without inheritance. As shown in the referenced page, you just create a new POM whose packaging is "pom" and which has a list of "modules". A module is a relative path to another Maven project:
<project>
...
<packaging>pom</packaging>
...
<modules>
<module>foo</module> <!-- module is in a subdirectory of this project -->
<module>../bar</module> <!-- module is a sibling to this project -->
<module>../../../other-projects/baz</module> <!-- somewhere else entirely -->
</modules>
</project>
Default behavior when building such a pom--known as an "aggregator"--is to build all of the modules as if you'd executed Maven in each module directory with the same arguments.
If you add an aggregator project in the directory above the three projects that names them as modules (module name = subdirectory name), it will build them without needing any changes in their own POMs. They don't need to reference it as a parent.