3 ms·
The primary advantage of maven is that it gives a common structure to a project and it's dependencies. When working with multiple development teams, it gets ve
by mainguy 17y ago
The primary advantage of maven is that it gives a common structure to a project and it's dependencies. When working with multiple development teams, it gets very difficult to comprehend different projects when:
Project A has the source in /java/src
Project B has the source in /main/src/java
Project C has the source split in two different dirs:
/src/test/java
/src/main/java
worse yet, compile targets are called:
project A -> compile
project B -> build (note, the build target in project A will deploy the software to a stage server... good luck the first time you accidentally figure that out)
project C -> go
and to maintain the version number of your package:
Project A uses a file called /resources/projectA.properties with a key of "verno"
Project B uses a file called /main/project.version
Project C uses a property set in /build/build.properties
Maven, when used in a way to avoid the above mentioned problems, will typically have the source code structured the same way for every project.
Yes, it's java-centric
yes, configuration can be a mess
yes, documentation is redunkuluously poor
But it sure beats wracking your brain trying to figure out how to build a project when every new developer does it a different way.
PS. I've never experienced any of the performance/download problems other folks have mentioned. I think they might be doing something wrong.