Maven is a commonly used Build and Dependancy Management tool. Firstly let's have a quick look at what are the Build and Dependancy Management Tools are.
Simply Build tools are programs which uses to automate the executable application creation from their source code (Eg:- .java for Java applications, .apk for Android applications etc.). Building process incorporates compiling, packaging, the code into a usable or executable form.
Basically build automation is the process of scripting or automating a wide variety of tasks that software developers perform in their day to day activities such as:
- Downloading the necessary dependancies.
- Compiling the Source Code into Binary Code.
- Packaging that Binary Code.
- Running Tests.
- Deployment to QA, UAT, or Production Environments.
For further details you may refer our Build and Dependancy Management Tools article for in-detailed information about Build and Dependancy Management Tools.
All the above mentioned tasks are done by Maven Plugins. In other words we can say that Maven is a plugin execution framework. So, let's have a look at the major Maven plugin types.
Maven plugins can be mainly divided in to two major caregories by considering their duty. They are:
- Build Plugins - Plugins which are related to the build process
- Reporting Plugins - Plugins which are related to the reporting process
Build Plugins
Reporting Plugins
What is POM?
Furthermore, Maven plugins can be divided into four sub categories by considering their plugin category.
- Maven Core Plugins
- Maven Reporting Plugins
- Maven Packaging Types
- Maven Tools
Maven Core Plugins
- clean - Clean up after the Build
- compiler - Compiles java Sources
- install - Install the built artefact to the local repository
- deploy - Deploys the built artefact to the remote repository
- failsafe - Run the Unit Integration tests in an isolated class loader
- resources - Copy the resources to the output directory for including in the JAR
- site - Generate a site for current project
- surefire - Run the Unit tests in an isolated class loader
- verifier - Useful for integration tests - verifies the existence of certain conditions
Maven Reporting Plugins
- changelog - Generates a list of recent changes from your SCM
- changes - Generates a report from an issue tracker or a change document
- checkstyle - Generates a Checkstyle report
- doap - Generates a Description of a Project (DOAP) file from a POM.
- docck - Documentation Checker plugin
- javadoc - Generates Javadoc for the project
- jdeps - Run JDK's JDeps tool on the project
- jxr - Generates a source cross reference
- linkcheck - Generates a link check report for the project documentation
- pmd - Generates a PMD report
- project-info-reports - Generates standard project reports
- surfire-reports - Generates a report based on the results of the unit-tests
Maven Packaging Types
- ear - Generates an EAR from the current project
- ejb - Build an EJB (Enterprise Java Beans) (an optional client) from the current project
- jar - Build a JAR from the current project
- rar - Build a RAR from the current project
- war - Build a WAR from the current project
- app-client/acr - Build a JavaEE application client form the current project
- shade - Build asn Uber-JAR from current project including dependancies
- source - Build a source-JAR from the current project
- jlink - Build a Java Runtime Image
- jmod - Build Java JMod Files
Maven Tools
- antrun - Run a set of ant tasks from a phase of the build
- artifact - Manage artifacts tasks such as build info
- archetype - Generates a Skelton project structure from an archetype
- assembly - Build an assembly (distribution) of sources and/or binaries
- dependancy - Dependancy manipulation (copy, unpack) and analysis
- gpg - Creates signatures for the artefacts and POMs
- help - Get information about the working environment for the project
- invoker - Run a set of maven projects and and verify the output
- jarsigner - Signs or verify the project artifacts
- patch - Use the gnu patch tool to apply patch files to the source code
- pdf - Generates a PDF version of the project's documentation
- plugin - Creates a Maven plugin descriptor for any mojos found in the source tree, to include in the JAR.
- release - Release the current project - Updating the POM and tagging in the SCM
- scm - Execute SCM commands for the current project
- scm-publish - Publish your maven website to a SCM location
- scripting - The Maven Scripting Plugin wraps the Scripting API according to JSR223
- stage - Assists with release staging and promotion
- tool chains - Allows to share configuration across plugins
Buy website traffic cheap
0Comments