GNU Make: A pioneer of build tools. Can be used in C C ++ builds.
Ant
Feature
For java
The default build file name is build.xml
merit
ant is also java, so you can go on multiple platforms
Standard for eclipse, so incremental build
Incremental build: Build only changes
Demerit
Since it is described in xml, the readability of the build file is low → It does not change even with Maven, it is solved with Gradle!
It seems to write a build script declaratively, it is difficult to write a script → Is it solved with Maven?
Maven
Feature
An alternative to ant! ??
Define project structure in pom.xml
Library-dependent resolution!
Maven in the sense of resolving library dependencies and Maven in the sense of build tools. Be careful which one is used as the context. * That's how active it is in solving library dependencies! ,
merit
Created library-dependent management and "central repository"
By bringing the convention to the project structure, the description of the build script is cleaner than ant.
Demerit
Previously, the build file was xml
Even if the script is refreshing, it is still declarative, bound by conventions, and difficult to write.
Gradle
Feature
The best of the build tools so far
The default build script name is build.gradle
There is also support for c c ++ object-c (Google Testing Framework is supported as standard)
Google Testing Framework: better testing of c ++
Default in Android Studio
merit
Free from xml, using Groovy
Are you writing in Groovy script? Omit now, if you grow up!
Library-dependent resolution possible with Maven repository
Multi-project support
The build tool itself has a built-in plugin mechanism. Can be expanded independently
Unlike previous tools, each developer no longer needs to install the tool in their environment. Gradle can easily distribute executable files that can work with Standalon. * You do not have to down the library from the outside
Demerit
Requires understanding of DSL * DSL:domain specific language
A computer language specialized for a specific purpose.
Seems to be slow, as much as Ant
Bazel
It seems that it was taken up by the former Google tool, Cookpad Program, and attracted attention.
Grunt
For javascript
It is called a build tool spear task runner.
The build script name is Gruntfile. Write in JSON.
Gulp
For javascript
Grunt's rivalry
It seems to be compatible with Node.js
SBT
For Scala
The build script name is build.sbt
Recommended Posts