-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpom.xml
193 lines (187 loc) · 9.2 KB
/
pom.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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?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">
<!-- The modelVersion is the version of the POM format and must be always 4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- the id of the project's group -->
<groupId>chess</groupId>
<!-- the id of the artifact (project) -->
<artifactId>chess</artifactId>
<!-- the version of the artifact under the specified group -->
<version>0.1-SNAPSHOT</version>
<properties>
<!-- Set file encoding for all source files. This avoids warnings about Maven copying files without knowing their encoding. -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<!-- JUnit 5 API - see https://junit.org/junit5/docs/current/user-guide/ -->
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- JUnit 5 Engine - see https://junit.org/junit5/docs/current/user-guide/ -->
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- JavaFX - see https://openjfx.io/openjfx-docs/#maven -->
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>16</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- The Compiler plugin is used to compile the sources of your project. -->
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<!-- We are using Java 11 which is the current LTS release -->
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<!-- The Surefire Plugin is used during the test phase of the build lifecycle to execute the unit tests of an application. It generates XML reports in target/surefire-reports -->
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<!-- The Failsafe plugin is designed to run integration tests while the Surefire Plugin is designed to run unit tests -->
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<!-- The Site plugin generates a site for the project which includes the project's reports configured below -->
<artifactId>maven-site-plugin</artifactId>
<version>3.9.1</version>
</plugin>
<plugin>
<!-- The Maven Project Info Reports plugin reports information about the project for the site -->
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<!-- The JaCoCo plugin runs JaCoCo to compute coverage of the test cases -->
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.6</version>
<executions>
<execution>
<goals>
<!-- Prepares a property pointing to the JaCoCo runtime agent that can be passed as a VM argument to the application under test -->
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Maven plugin to run JavaFX 11+ applications -->
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.5</version>
<configuration>
<!-- Strips debug information out when building with JLink -->
<stripDebug>true</stripDebug>
<!-- Use maximal compression level of the resources being used -->
<compress>2</compress>
<!-- Remove the includes directory in the resulting runtime image. -->
<noHeaderFiles>true</noHeaderFiles>
<!-- Removes the man directory in the resulting runtime image -->
<noManPages>true</noManPages>
<!-- Adds a launcher script with the given name -->
<launcher>chess</launcher>
<!-- The name of the folder with the resulting runtime image -->
<jlinkImageName>chess</jlinkImageName>
<!-- Create a zip of the resulting runtime image -->
<jlinkZipName>chess</jlinkZipName>
<!-- The main class, fully qualified name -->
<mainClass>chess/chess.Main</mainClass>
<!-- Make command line arguments setable with -Dargs="" -->
<commandlineArgs>${args}</commandlineArgs>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<!-- The JXR Plugin produces a cross-reference of the project's sources, which is handy when used with the PMD Plugin for referencing errors found in the code. -->
<artifactId>maven-jxr-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<!-- The Surefire Report Plugin parses the generated XML files under target/surefire-reports and renders them using DOXIA, which creates the web interface version of the test results. -->
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<!-- The PMD plugin runs the PMD code analysis tool on your project's source code and generate a site report with its results. It also supports the separate Copy/Paste Detector tool (or CPD) distributed with PMD. -->
<artifactId>maven-pmd-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<!-- Run PMD and CPD on the tests, too -->
<includeTests>true</includeTests>
<rulesets>
<!-- We are using a custom PMD rule set -->
<ruleset>https://projects.isp.uni-luebeck.de/isp/pmd/-/raw/master/rules.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<plugin>
<!-- The Javadoc plugin uses the Javadoc tool to generate javadocs for the project -->
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<!-- Ignore module definition to avoid module related issues -->
<sourceFileExcludes>module-info.java</sourceFileExcludes>
<additionalOptions>
<option>--show-module-contents all</option>
<option>--show-packages all</option>
</additionalOptions>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
<report>test-javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<!-- The JaCoCo plugin runs JaCoCo to compute coverage of the test cases -->
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<!-- Disable the JaCoCo Aggregate report by explicitly selecting only the simple report -->
<report>report</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<excludes>
<!-- Ignore GUI classes for coverage -->
<exclude>chess/cli/**/*</exclude>
<exclude>chess/gui/**/*</exclude>
<exclude>chess/Main.class</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</reporting>
</project>