CI/CD: Continuous Integration and Continuous Deployment Flashcards
Apache Maven vs Apache Ant vs jenkins vs Gradle vs Azure DevOps Server vs CircleCI vs Travis CI vs Bamboo vs CodeShip vs JRebel
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
It automates tasks such as :downloading dependencies, putting additional jars on a classpath, compiling source code into binary code, running tests, packaging compiled code into deployable artifacts such as JAR, WAR, and ZIP files, and deploying these artifacts to an application server or repository
The configuration of a Maven project is done via a Project Object Model (POM), represented by a pom.xml file. The POM describes the project, manages dependencies, and configures plugins for building the software.The POM also defines the relationships among modules of multi-module projects
Maven lifecycle phases:
1.validate – checks the correctness of the project
2.compile – compiles the provided source code into binary artifacts
3.test – executes unit tests
4.package – packages compiled code into an archive file
5.integration-test – executes additional tests, which require the packaging
6.verify – checks if the package is valid
7.install – installs the package file into the local Maven repository
8.deploy – deploys the package file to a remote server or repository
Tools to anlyze the quality of the source code: SonarQube