blob: 40b3cca41970e5648efb2aba4e6e450e270fb1cd [file] [log] [blame]
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +01001<?xml version="1.0" encoding="UTF-8"?>
Matthias Andreas Benkardb5d657a2022-02-03 21:14:30 +01002
3<!--
4SPDX-FileCopyrightText: © 2021 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
5
6SPDX-License-Identifier: LGPL-3.0-or-later
7-->
8
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +01009<project
10 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
11 xmlns="http://maven.apache.org/POM/4.0.0"
12 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
13
14 <modelVersion>4.0.0</modelVersion>
15
Matthias Andreas Benkard789a7fe2022-03-01 15:12:34 +010016 <version>0.1.7-SNAPSHOT</version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010017
18 <groupId>eu.mulk.jgvariant</groupId>
19 <artifactId>jgvariant-parent</artifactId>
20 <packaging>pom</packaging>
21
22 <name>JGVariant Parent</name>
23 <url>https://gerrit.benkard.de/plugins/gitiles/jgvariant</url>
24
25 <description>
26 Parent POM of the JGVariant library.
27 </description>
28
29 <licenses>
30 <license>
31 <name>GNU Lesser General Public License v3.0 or later</name>
32 <url>https://www.gnu.org/licenses/lgpl-3.0.html</url>
33 </license>
34 </licenses>
35
36 <developers>
37 <developer>
38 <name>Matthias Benkard</name>
39 <email>code@mulk.eu</email>
40 <organization>Matthias Benkard</organization>
41 <organizationUrl>https://matthias.benkard.de</organizationUrl>
42 </developer>
43 </developers>
44
45 <scm>
46 <connection>scm:git:https://gerrit.benkard.de/jgvariant</connection>
47 <developerConnection>scm:git:ssh://gerrit.benkard.de:29418/jgvariant</developerConnection>
48 <url>https://gerrit.benkard.de/plugins/gitiles/jgvariant</url>
49 </scm>
50
51 <properties>
52 <maven.compiler.parameters>true</maven.compiler.parameters>
53 <maven.compiler.release>17</maven.compiler.release>
54
55 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
56 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
57
58 <compiler-plugin.version>3.8.1</compiler-plugin.version>
59 <failsafe-plugin.version>${surefire-plugin.version}</failsafe-plugin.version>
Matthias Andreas Benkard143a64b2022-03-01 14:24:12 +010060 <flatten-plugin.version>1.2.7</flatten-plugin.version>
Matthias Andreas Benkard12a24932022-04-15 20:43:32 +020061 <jar-plugin.version>3.2.2</jar-plugin.version>
62 <maven-scm-plugin.version>2.0.0-M1</maven-scm-plugin.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010063 <maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
64 <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
65 <maven-source-plugin.version>2.2.1</maven-source-plugin.version>
66 <nexus-staging-plugin.version>1.6.8</nexus-staging-plugin.version>
Matthias Andreas Benkard12a24932022-04-15 20:43:32 +020067 <spotless-plugin.version>2.22.1</spotless-plugin.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010068 <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
Matthias Andreas Benkard12a24932022-04-15 20:43:32 +020069 <versions-plugin.version>2.10.0</versions-plugin.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010070
71 <apiguardian.version>1.1.2</apiguardian.version>
Matthias Andreas Benkard12a24932022-04-15 20:43:32 +020072 <errorprone.version>2.13.0</errorprone.version>
73 <google-java-format.version>1.15.0</google-java-format.version>
74 <inject-resources.version>0.3.2</inject-resources.version>
75 <jetbrains-annotations.version>23.0.0</jetbrains-annotations.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010076 <junit-jupiter.version>5.8.2</junit-jupiter.version>
Matthias Andreas Benkard50a626d2021-12-30 19:13:49 +010077 <xz.version>1.9</xz.version>
Matthias Andreas Benkard12a24932022-04-15 20:43:32 +020078 <checker-framework.version>3.21.4</checker-framework.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010079 </properties>
80
81 <distributionManagement>
82 <snapshotRepository>
83 <id>ossrh</id>
84 <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
85 </snapshotRepository>
86 </distributionManagement>
87
88 <dependencyManagement>
89 <dependencies>
90 <!-- Annotations -->
91 <dependency>
92 <groupId>com.google.errorprone</groupId>
93 <artifactId>error_prone_annotations</artifactId>
94 <version>${errorprone.version}</version>
95 </dependency>
96 <dependency>
97 <groupId>org.jetbrains</groupId>
98 <artifactId>annotations</artifactId>
99 <version>${jetbrains-annotations.version}</version>
100 </dependency>
101 <dependency>
102 <groupId>org.apiguardian</groupId>
103 <artifactId>apiguardian-api</artifactId>
104 <version>${apiguardian.version}</version>
105 </dependency>
106
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100107 <!-- Static analysis -->
108 <dependency>
109 <groupId>org.checkerframework</groupId>
110 <artifactId>checker</artifactId>
111 <version>${checker-framework.version}</version>
112 </dependency>
113 <dependency>
114 <groupId>org.checkerframework</groupId>
115 <artifactId>checker-qual</artifactId>
116 <version>${checker-framework.version}</version>
117 </dependency>
118
Matthias Andreas Benkard50a626d2021-12-30 19:13:49 +0100119 <!-- OSTree compression support -->
120 <dependency>
121 <groupId>org.tukaani</groupId>
122 <artifactId>xz</artifactId>
Matthias Andreas Benkarde236b4d2022-03-01 13:51:01 +0100123 <version>${xz.version}</version>
Matthias Andreas Benkard50a626d2021-12-30 19:13:49 +0100124 </dependency>
125
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100126 <!-- Testing -->
127 <dependency>
128 <groupId>org.junit.jupiter</groupId>
129 <artifactId>junit-jupiter-engine</artifactId>
130 <version>${junit-jupiter.version}</version>
131 <scope>test</scope>
132 </dependency>
133 <dependency>
134 <groupId>org.junit.jupiter</groupId>
135 <artifactId>junit-jupiter-api</artifactId>
136 <version>${junit-jupiter.version}</version>
137 <scope>test</scope>
138 </dependency>
Matthias Andreas Benkard4e8423d2021-12-19 22:56:09 +0100139 <dependency>
140 <groupId>io.hosuaby</groupId>
141 <artifactId>inject-resources-junit-jupiter</artifactId>
142 <version>${inject-resources.version}</version>
143 <scope>test</scope>
144 </dependency>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100145 </dependencies>
146 </dependencyManagement>
147
148 <build>
149
150 <pluginManagement>
151
152 <plugins>
153
154 <plugin>
155 <artifactId>maven-surefire-plugin</artifactId>
156 <version>${surefire-plugin.version}</version>
157 <configuration>
158 <argLine>
159 --add-opens eu.mulk.jgvariant.core/eu.mulk.jgvariant.core=ALL-UNNAMED
Matthias Andreas Benkarda7e9d522021-12-28 01:37:47 +0100160 --add-opens eu.mulk.jgvariant.ostree/eu.mulk.jgvariant.ostree=ALL-UNNAMED
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100161 </argLine>
162 </configuration>
163 </plugin>
164
165 <plugin>
166 <artifactId>maven-failsafe-plugin</artifactId>
167 <version>${failsafe-plugin.version}</version>
168 <configuration>
169 <argLine>
170 --add-opens eu.mulk.jgvariant.core/eu.mulk.jgvariant.core=ALL-UNNAMED
Matthias Andreas Benkarda7e9d522021-12-28 01:37:47 +0100171 --add-opens eu.mulk.jgvariant.ostree/eu.mulk.jgvariant.ostree=ALL-UNNAMED
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100172 </argLine>
173 </configuration>
174 </plugin>
175
176 <plugin>
177 <artifactId>maven-compiler-plugin</artifactId>
178 <version>${compiler-plugin.version}</version>
179 <configuration>
180 <fork>true</fork>
181 <compilerArgs>
182 <arg>-XDcompilePolicy=simple</arg>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100183 <arg>-Xplugin:ErrorProne -Xep:InvalidParam:OFF</arg>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100184 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100185 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100186 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
187 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
188 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
189 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
190 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
191 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
192 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
193 <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
194 <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
195 </compilerArgs>
196 <annotationProcessorPaths>
197 <path>
198 <groupId>com.google.errorprone</groupId>
199 <artifactId>error_prone_core</artifactId>
200 <version>${errorprone.version}</version>
201 </path>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100202 <path>
203 <groupId>org.checkerframework</groupId>
204 <artifactId>checker</artifactId>
205 <version>${checker-framework.version}</version>
206 </path>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100207 </annotationProcessorPaths>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100208 <annotationProcessors>
209 <annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
210 </annotationProcessors>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100211 </configuration>
212 </plugin>
213
214 <plugin>
215 <artifactId>maven-jar-plugin</artifactId>
216 <version>${jar-plugin.version}</version>
217 </plugin>
218
219 <plugin>
220 <groupId>org.codehaus.mojo</groupId>
221 <artifactId>versions-maven-plugin</artifactId>
222 <version>${versions-plugin.version}</version>
223 </plugin>
224
225 <plugin>
226 <groupId>org.apache.maven.plugins</groupId>
227 <artifactId>maven-scm-plugin</artifactId>
228 <version>${maven-scm-plugin.version}</version>
229 <configuration>
230 <tag>v${project.version}</tag>
231 <connectionType>developerConnection</connectionType>
232 </configuration>
233 </plugin>
234
Matthias Andreas Benkard143a64b2022-03-01 14:24:12 +0100235 <plugin>
236 <groupId>org.codehaus.mojo</groupId>
237 <artifactId>flatten-maven-plugin</artifactId>
238 <version>${flatten-plugin.version}</version>
239 <executions>
240 <execution>
241 <id>flatten</id>
242 <phase>process-resources</phase>
243 <goals>
244 <goal>flatten</goal>
245 </goals>
246 </execution>
247 <execution>
248 <id>flatten.clean</id>
249 <phase>clean</phase>
250 <goals>
251 <goal>clean</goal>
252 </goals>
253 </execution>
254 </executions>
255 </plugin>
256
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100257 </plugins>
258
259 </pluginManagement>
260
261 <plugins>
262
263 <plugin>
264 <groupId>com.diffplug.spotless</groupId>
265 <artifactId>spotless-maven-plugin</artifactId>
266 <version>${spotless-plugin.version}</version>
267 <configuration>
268 <java>
269 <removeUnusedImports/>
270 <importOrder>
271 <order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
272 </importOrder>
273 <googleJavaFormat>
274 <version>${google-java-format.version}</version>
275 <style>GOOGLE</style>
276 </googleJavaFormat>
277 </java>
278 </configuration>
279 </plugin>
280
281 <plugin>
282 <groupId>org.sonatype.plugins</groupId>
283 <artifactId>nexus-staging-maven-plugin</artifactId>
284 <version>${nexus-staging-plugin.version}</version>
285 <extensions>true</extensions>
286 <configuration>
287 <serverId>ossrh</serverId>
288 <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
289 <autoReleaseAfterClose>true</autoReleaseAfterClose>
290 </configuration>
291 </plugin>
292
Matthias Andreas Benkard143a64b2022-03-01 14:24:12 +0100293 <plugin>
294 <groupId>org.codehaus.mojo</groupId>
295 <artifactId>flatten-maven-plugin</artifactId>
296 <configuration>
297 <flattenMode>oss</flattenMode>
298 <flattenDependencyMode>all</flattenDependencyMode>
299 <pomElements>
300 <distributionManagement>flatten</distributionManagement>
301 </pomElements>
302 </configuration>
303 </plugin>
304
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100305 </plugins>
306 </build>
307
308 <profiles>
309
310 <profile>
311 <id>release</id>
312
313 <build>
314 <plugins>
315
316 <plugin>
317 <groupId>org.apache.maven.plugins</groupId>
318 <artifactId>maven-source-plugin</artifactId>
319 <version>${maven-source-plugin.version}</version>
320 <executions>
321 <execution>
322 <id>attach-sources</id>
323 <goals>
324 <goal>jar-no-fork</goal>
325 </goals>
326 </execution>
327 </executions>
328 </plugin>
329
330 <plugin>
331 <groupId>org.apache.maven.plugins</groupId>
332 <artifactId>maven-javadoc-plugin</artifactId>
333 <version>${maven-javadoc-plugin.version}</version>
334 <executions>
335 <execution>
336 <id>attach-javadocs</id>
337 <goals>
338 <goal>jar</goal>
339 </goals>
340 </execution>
341 </executions>
342 </plugin>
343
344 <plugin>
345 <groupId>org.apache.maven.plugins</groupId>
346 <artifactId>maven-gpg-plugin</artifactId>
347 <version>${maven-gpg-plugin.version}</version>
348 <configuration>
349 <keyname>code@mulk.eu</keyname>
350 </configuration>
351 <executions>
352 <execution>
353 <id>sign-artifacts</id>
354 <phase>verify</phase>
355 <goals>
356 <goal>sign</goal>
357 </goals>
358 </execution>
359 </executions>
360 </plugin>
361
362 </plugins>
363 </build>
364 </profile>
365
366 </profiles>
367
368</project>