Sample Maven POM including Plugin Versions

30 Jul 2020

For reference, a sample Maven POM focusing on plugin configuration.

XML
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?xml version="1.0" encoding="UTF-8"?>  
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>  

    <groupId>org.northcoder</groupId>  
    <artifactId>MyProjectName</artifactId>  
    <version>1.0-SNAPSHOT</version>  
    <packaging>war</packaging>  

    <name>MyProjectName</name>  

    <properties>  
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <maven.compiler.source>13</maven.compiler.source>  
        <maven.compiler.target>13</maven.compiler.target>  
    </properties>  

    <dependencies>  
        ...
    </dependencies>  

    <build>  

        <pluginManagement>  
            <!-- Index: https://maven.apache.org/plugins/index.html -->  
            <plugins>  
                <!-- core plugins -->  
                <plugin>  
                    <artifactId>maven-clean-plugin</artifactId>  
                    <version>3.1.0</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-compiler-plugin</artifactId>  
                    <version>3.8.1</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-install-plugin</artifactId>  
                    <version>3.0.0-M1</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-resources-plugin</artifactId>  
                    <version>3.1.0</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-surefire-plugin</artifactId>  
                    <version>3.0.0-M5</version>  
                </plugin>  
                <!-- packaging plugins -->  
                <plugin>  
                    <artifactId>maven-jar-plugin</artifactId>  
                    <version>3.2.0</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-war-plugin</artifactId>  
                    <version>3.3.1</version>  
                </plugin>  
                <plugin>  
                    <artifactId>maven-shade-plugin</artifactId>  
                    <version>3.2.4</version>  
                </plugin>  
                <!-- reporting plugins -->  
                <plugin>  
                    <artifactId>maven-javadoc-plugin</artifactId>  
                    <version>3.2.0</version>  
                </plugin>  
                <!-- tools plugins -->  
                <plugin>  
                    <artifactId>maven-dependency-plugin</artifactId>  
                    <version>3.1.2</version>  
                </plugin>  
            </plugins>  
        </pluginManagement>  

        <plugins>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <configuration>  
                    <compilerArguments>  
                        <endorseddirs>${endorsed.dir}</endorseddirs>  
                    </compilerArguments>  
                </configuration>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <configuration>  
                    <failOnMissingWebXml>false</failOnMissingWebXml>  
                </configuration>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-dependency-plugin</artifactId>  
                <executions>  
                    <execution>  
                        <phase>validate</phase>  
                        <goals>  
                            <goal>copy</goal>  
                        </goals>  
                        <configuration>  
                            <outputDirectory>${endorsed.dir}</outputDirectory>  
                            <silent>true</silent>  
                            <artifactItems>  
                                <artifactItem>  
                                    <groupId>javax</groupId>  
                                    <artifactId>javaee-web-api</artifactId>  
                                    <version>8.0.1</version>  
                                    <type>jar</type>  
                                </artifactItem>  
                            </artifactItems>  
                        </configuration>  
                    </execution>  
                </executions>  
            </plugin>  
        </plugins>  
    </build>  

</project>