blob: 92b7e0735dfb98259010beeed380bf4b05670e75 [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 Benkarde14bd1b2021-12-30 21:11:22 +010016 <version>0.1.6-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>
60 <jar-plugin.version>3.2.0</jar-plugin.version>
61 <maven-scm-plugin.version>1.12.0</maven-scm-plugin.version>
62 <maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
63 <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
64 <maven-source-plugin.version>2.2.1</maven-source-plugin.version>
65 <nexus-staging-plugin.version>1.6.8</nexus-staging-plugin.version>
66 <spotless-plugin.version>2.17.6</spotless-plugin.version>
67 <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
68 <versions-plugin.version>2.8.1</versions-plugin.version>
69
70 <apiguardian.version>1.1.2</apiguardian.version>
71 <errorprone.version>2.10.0</errorprone.version>
72 <google-java-format.version>1.13.0</google-java-format.version>
Matthias Andreas Benkard4e8423d2021-12-19 22:56:09 +010073 <inject-resources.version>0.3.0</inject-resources.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010074 <jetbrains-annotations.version>22.0.0</jetbrains-annotations.version>
75 <junit-jupiter.version>5.8.2</junit-jupiter.version>
Matthias Andreas Benkard50a626d2021-12-30 19:13:49 +010076 <xz.version>1.9</xz.version>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +010077 <checker-framework.version>3.21.1</checker-framework.version>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +010078 </properties>
79
80 <distributionManagement>
81 <snapshotRepository>
82 <id>ossrh</id>
83 <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
84 </snapshotRepository>
85 </distributionManagement>
86
87 <dependencyManagement>
88 <dependencies>
89 <!-- Annotations -->
90 <dependency>
91 <groupId>com.google.errorprone</groupId>
92 <artifactId>error_prone_annotations</artifactId>
93 <version>${errorprone.version}</version>
94 </dependency>
95 <dependency>
96 <groupId>org.jetbrains</groupId>
97 <artifactId>annotations</artifactId>
98 <version>${jetbrains-annotations.version}</version>
99 </dependency>
100 <dependency>
101 <groupId>org.apiguardian</groupId>
102 <artifactId>apiguardian-api</artifactId>
103 <version>${apiguardian.version}</version>
104 </dependency>
105
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100106 <!-- Static analysis -->
107 <dependency>
108 <groupId>org.checkerframework</groupId>
109 <artifactId>checker</artifactId>
110 <version>${checker-framework.version}</version>
111 </dependency>
112 <dependency>
113 <groupId>org.checkerframework</groupId>
114 <artifactId>checker-qual</artifactId>
115 <version>${checker-framework.version}</version>
116 </dependency>
117
Matthias Andreas Benkard50a626d2021-12-30 19:13:49 +0100118 <!-- OSTree compression support -->
119 <dependency>
120 <groupId>org.tukaani</groupId>
121 <artifactId>xz</artifactId>
122 <version>1.9</version>
123 </dependency>
124
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100125 <!-- Testing -->
126 <dependency>
127 <groupId>org.junit.jupiter</groupId>
128 <artifactId>junit-jupiter-engine</artifactId>
129 <version>${junit-jupiter.version}</version>
130 <scope>test</scope>
131 </dependency>
132 <dependency>
133 <groupId>org.junit.jupiter</groupId>
134 <artifactId>junit-jupiter-api</artifactId>
135 <version>${junit-jupiter.version}</version>
136 <scope>test</scope>
137 </dependency>
Matthias Andreas Benkard4e8423d2021-12-19 22:56:09 +0100138 <dependency>
139 <groupId>io.hosuaby</groupId>
140 <artifactId>inject-resources-junit-jupiter</artifactId>
141 <version>${inject-resources.version}</version>
142 <scope>test</scope>
143 </dependency>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100144 </dependencies>
145 </dependencyManagement>
146
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100147 <dependencies>
148 <!-- Static analysis -->
149 <dependency>
150 <groupId>org.checkerframework</groupId>
151 <artifactId>checker</artifactId>
152 <scope>provided</scope>
153 <optional>true</optional>
154 </dependency>
155 <dependency>
156 <groupId>org.checkerframework</groupId>
157 <artifactId>checker-qual</artifactId>
158 <scope>provided</scope>
159 <optional>true</optional>
160 </dependency>
161 </dependencies>
162
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100163 <build>
164
165 <pluginManagement>
166
167 <plugins>
168
169 <plugin>
170 <artifactId>maven-surefire-plugin</artifactId>
171 <version>${surefire-plugin.version}</version>
172 <configuration>
173 <argLine>
174 --add-opens eu.mulk.jgvariant.core/eu.mulk.jgvariant.core=ALL-UNNAMED
Matthias Andreas Benkarda7e9d522021-12-28 01:37:47 +0100175 --add-opens eu.mulk.jgvariant.ostree/eu.mulk.jgvariant.ostree=ALL-UNNAMED
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100176 </argLine>
177 </configuration>
178 </plugin>
179
180 <plugin>
181 <artifactId>maven-failsafe-plugin</artifactId>
182 <version>${failsafe-plugin.version}</version>
183 <configuration>
184 <argLine>
185 --add-opens eu.mulk.jgvariant.core/eu.mulk.jgvariant.core=ALL-UNNAMED
Matthias Andreas Benkarda7e9d522021-12-28 01:37:47 +0100186 --add-opens eu.mulk.jgvariant.ostree/eu.mulk.jgvariant.ostree=ALL-UNNAMED
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100187 </argLine>
188 </configuration>
189 </plugin>
190
191 <plugin>
192 <artifactId>maven-compiler-plugin</artifactId>
193 <version>${compiler-plugin.version}</version>
194 <configuration>
195 <fork>true</fork>
196 <compilerArgs>
197 <arg>-XDcompilePolicy=simple</arg>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100198 <arg>-Xplugin:ErrorProne -Xep:InvalidParam:OFF</arg>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100199 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100200 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100201 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
202 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
203 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
204 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
205 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
206 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
207 <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
208 <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
209 <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
210 </compilerArgs>
211 <annotationProcessorPaths>
212 <path>
213 <groupId>com.google.errorprone</groupId>
214 <artifactId>error_prone_core</artifactId>
215 <version>${errorprone.version}</version>
216 </path>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100217 <path>
218 <groupId>org.checkerframework</groupId>
219 <artifactId>checker</artifactId>
220 <version>${checker-framework.version}</version>
221 </path>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100222 </annotationProcessorPaths>
Matthias Andreas Benkard9006e702022-03-01 13:43:50 +0100223 <annotationProcessors>
224 <annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
225 </annotationProcessors>
Matthias Andreas Benkard796b19d2021-12-18 23:38:46 +0100226 </configuration>
227 </plugin>
228
229 <plugin>
230 <artifactId>maven-jar-plugin</artifactId>
231 <version>${jar-plugin.version}</version>
232 </plugin>
233
234 <plugin>
235 <groupId>org.codehaus.mojo</groupId>
236 <artifactId>versions-maven-plugin</artifactId>
237 <version>${versions-plugin.version}</version>
238 </plugin>
239
240 <plugin>
241 <groupId>org.apache.maven.plugins</groupId>
242 <artifactId>maven-scm-plugin</artifactId>
243 <version>${maven-scm-plugin.version}</version>
244 <configuration>
245 <tag>v${project.version}</tag>
246 <connectionType>developerConnection</connectionType>
247 </configuration>
248 </plugin>
249
250 </plugins>
251
252 </pluginManagement>
253
254 <plugins>
255
256 <plugin>
257 <groupId>com.diffplug.spotless</groupId>
258 <artifactId>spotless-maven-plugin</artifactId>
259 <version>${spotless-plugin.version}</version>
260 <configuration>
261 <java>
262 <removeUnusedImports/>
263 <importOrder>
264 <order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
265 </importOrder>
266 <googleJavaFormat>
267 <version>${google-java-format.version}</version>
268 <style>GOOGLE</style>
269 </googleJavaFormat>
270 </java>
271 </configuration>
272 </plugin>
273
274 <plugin>
275 <groupId>org.sonatype.plugins</groupId>
276 <artifactId>nexus-staging-maven-plugin</artifactId>
277 <version>${nexus-staging-plugin.version}</version>
278 <extensions>true</extensions>
279 <configuration>
280 <serverId>ossrh</serverId>
281 <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
282 <autoReleaseAfterClose>true</autoReleaseAfterClose>
283 </configuration>
284 </plugin>
285
286 </plugins>
287 </build>
288
289 <profiles>
290
291 <profile>
292 <id>release</id>
293
294 <build>
295 <plugins>
296
297 <plugin>
298 <groupId>org.apache.maven.plugins</groupId>
299 <artifactId>maven-source-plugin</artifactId>
300 <version>${maven-source-plugin.version}</version>
301 <executions>
302 <execution>
303 <id>attach-sources</id>
304 <goals>
305 <goal>jar-no-fork</goal>
306 </goals>
307 </execution>
308 </executions>
309 </plugin>
310
311 <plugin>
312 <groupId>org.apache.maven.plugins</groupId>
313 <artifactId>maven-javadoc-plugin</artifactId>
314 <version>${maven-javadoc-plugin.version}</version>
315 <executions>
316 <execution>
317 <id>attach-javadocs</id>
318 <goals>
319 <goal>jar</goal>
320 </goals>
321 </execution>
322 </executions>
323 </plugin>
324
325 <plugin>
326 <groupId>org.apache.maven.plugins</groupId>
327 <artifactId>maven-gpg-plugin</artifactId>
328 <version>${maven-gpg-plugin.version}</version>
329 <configuration>
330 <keyname>code@mulk.eu</keyname>
331 </configuration>
332 <executions>
333 <execution>
334 <id>sign-artifacts</id>
335 <phase>verify</phase>
336 <goals>
337 <goal>sign</goal>
338 </goals>
339 </execution>
340 </executions>
341 </plugin>
342
343 </plugins>
344 </build>
345 </profile>
346
347 </profiles>
348
349</project>