I understand that if I want to compile code that uses various third-party libraries, then I will need to write a bunch of extra. parameters describing the connection of these libraries. That is why maven and so on were created. that allow you to compile from the console, without writing a bunch of extra. parameters. Do I get it right?
Closed due to the fact that the essence of the question is incomprehensible by the participants Roman C , 0xdb , Jarvis_J , Enikeyschik , Dmitry Kozlov 4 Dec '18 at 18:01 .
Try to write more detailed questions. To get an answer, explain what exactly you see the problem, how to reproduce it, what you want to get as a result, etc. Give an example that clearly demonstrates the problem. If the question can be reformulated according to the rules set out in the certificate , edit it .
1 answer
In the beginning was the word, and the word was javac . And it was convenient, but only as long as the program consisted of one class. And programmers were lazy, they didn’t want to write long commands with tricky parameters. And the developers began to automate the assembly, and wrote many custom scripts that Stroustrup himself could not figure out. And reasonable people decided that this was not good.
First of all, the assembly systems are needed to unify the assembly process for all those who work on the project. If on any environment, in any OS and IDE using the same short command you can get the same assembled application, this greatly reduces the number of bugs caused by differences in the environment of developers. And since almost everywhere in the Java world one of the 3 standard build systems is used, this greatly reduces the project entry threshold, because wherever you go, everything gradle build through mvn build (or gradle build ; or, at least, ant ). No need to delve into custom build scripts, everywhere you are waiting for the familiar format of the assembly descriptor. A bonus in Maven and Gradle is automatic dependency uploading. This eliminates another potential source of problems - different versions of libraries from different developers (this, however, generates a number of other problems, but this is a completely different story).
- 2the best answer I've seen is Qada