-
Notifications
You must be signed in to change notification settings - Fork 0
Continuous Integration
Building a software consists of various steps, often including:
- compiling computer source code into binary code,
- packaging binary code,
- running automated tests,
- deploying to production systems,
- creating documentation and/or release notes.
As building a large software product is a complex task, all popular programming languages have build automation tools. One of the most well-known build tools is GNU Make, a flexible application primarily used for compiling C/C++ code. (However, Make is flexible enough for building any source code, including LaTeX documents.)
During the course, we will use Apache Maven, a declarative build automation tool. Maven embraces the paradigm of convention over configuration, which means that typical build processes can be defined with a small amount of code.
For learning the advanced features of Maven, there is an excellent book titled Maven by Example.
If you wish to build Eclipse plug-ins, use the Tycho Maven plug-in. We compiled some guidelines in our Maven and Eclipse cheat sheet.
Maven's main competitors are Apache Ant, Gradle and SBT. Building a simple project is quite straightforward with all modern build tools, but for more complicated, you have to factor a lot of requirements: supported for different languages (Scala, Xtend), platforms (OSGi), IDE integration and so on.
During this course, we will use GitHub for version control and Travis for continuous integration.
- Martin Fowler on Continuous Integration