Apache Maven Compiler Plugin
The Maven Compiler Plugin is used to compile the source code of a Maven project. It is automatically included in the build process.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>21</source>
<target>21</target>
</configuration>
</plugin>
Maven Surefire Plugin
The Maven Surefire Plugin is used to run unit tests during the build lifecycle. It is typically bound to the test
phase.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M8</version>
</plugin>
Maven Failsafe Plugin
The Maven Failsafe Plugin is used to run integration tests. It is typically bound to the integration-test
and verify
phases.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M8</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Apache Maven Clean Plugin
The Maven Clean Plugin is used to remove the target
directory (i.e., the directory where Maven builds the project) to ensure a clean build.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.2.0</version>
</plugin>
Apache Maven Install Plugin
The Maven Install Plugin is used to install the built project into the local repository, making it available for use as a dependency in other projects locally.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
Apache Maven Deploy Plugin
The Maven Deploy Plugin is used to deploy the built project to a remote repository for sharing with other developers and projects.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
Apache Maven Site Plugin
The Maven Site Plugin generates a site for the project, including reports, Javadocs, and other documentation.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.10.0</version>
</plugin>
Apache Maven Assembly Plugin
The Maven Assembly Plugin is used to create distributable archives, such as ZIP or TAR files, containing the project's binaries, dependencies, and other resources.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/descriptor.xml</descriptor>
</descriptors>
</configuration>
</plugin>
Maven Shade Plugin
The Maven Shade Plugin is used to package the project along with its dependencies into a single executable JAR file.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
Apache Maven Checkstyle Plugin
The Maven Checkstyle Plugin is used to enforce coding standards by performing static code analysis.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
Apache Maven Dependency Plugin
The Maven Dependency Plugin provides utility goals to manipulate artifacts in the local repository, as well as dependency resolution and handling.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
</plugin>
Apache Maven Help Plugin
The Maven Help Plugin provides goals to get documentation and other helpful information about the build.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-help-plugin</artifactId>
<version>3.2.0</version>
</plugin>
Apache Maven PMD Plugin
The Maven PMD Plugin is used to run the PMD code analysis tool on the project source code, identifying potential defects and enforcing coding standards.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
Apache Maven Resources Plugin
The Maven Resources Plugin handles the copying of project resources (e.g., property files) to the output directory.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
</plugin>
Apache Maven Source Plugin
The Maven Source Plugin is used to create a JAR file containing the source code of the project.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Apache Maven WAR Plugin
The Maven WAR Plugin is used to build Web Application Archive (WAR) files from your project. It compiles and packages web applications into a deployable WAR file.
Configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
Example: Simple JSP File
- Create a
webapp
directory structure insidesrc/main/
:
mkdir -p src/main/webapp/WEB-INF
- Add a simple
hello.jsp
file insidesrc/main/webapp
:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
- Configure your Maven
pom.xml
to use the WAR plugin as shown above.
Deploying to Tomcat
- Ensure Tomcat is installed and running.
- Package your application using Maven:
mvn clean package
- Copy the generated WAR file from the
target
directory to the Tomcatwebapps
directory.
cp target/your-app-name.war /path/to/tomcat/webapps/
- Restart Tomcat and access the application via
http://localhost:8080/your-app-name/hello.jsp
.
Conclusion
Maven plugins provide powerful capabilities for automating various aspects of the build process. By leveraging these plugins, Java developers can ensure consistent and efficient project builds, testing, and deployments. The plugins discussed in this guide are some of the most commonly used and essential for Java development with Maven. Integrating them into your Maven projects will help streamline your development workflow and maintain high code quality.
Comments
Post a Comment
Leave Comment