Bump peaceiris/actions-gh-pages from 3 to 4
[ilo.git] / pom.xml
blob5f5997410141461151cfb17712c23a506895f008
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   ~ SPDX-FileCopyrightText: The ilo Authors
4   ~ SPDX-License-Identifier: 0BSD
5   -->
6 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7          xmlns="http://maven.apache.org/POM/4.0.0"
8          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
9     <modelVersion>4.0.0</modelVersion>
11     <!-- ordering follows https://maven.apache.org/developers/conventions/code.html#POM_Code_Convention -->
13     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
14     <!--                                 PARENT                                  -->
15     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
16     <!-- https://maven.apache.org/pom.html#Inheritance -->
17     <parent>
18         <groupId>wtf.metio.maven.parents</groupId>
19         <artifactId>maven-parents-java-stable</artifactId>
20         <version>2024.1.12</version>
21     </parent>
23     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
24     <!--                               COORDINATES                               -->
25     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
26     <!-- https://maven.apache.org/pom.html#Maven_Coordinates -->
27     <groupId>wtf.metio.ilo</groupId>
28     <artifactId>ilo</artifactId>
29     <version>${revision}</version>
30     <packaging>jar</packaging>
32     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
33     <!--                               INFORMATIONS                              -->
34     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
35     <!-- https://maven.apache.org/pom.html#More_Project_Information -->
36     <name>ilo</name>
37     <description>ilo: manage reproducible build environments</description>
38     <url>https://ilo.projects.metio.wtf/</url>
39     <inceptionYear>2019</inceptionYear>
41     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
42     <!--                                    SCM                                  -->
43     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
44     <!-- https://maven.apache.org/pom.html#SCM -->
45     <scm>
46         <connection>scm:git:git@github.com:metio/ilo.git</connection>
47         <developerConnection>scm:git:git@github.com:metio/ilo.git</developerConnection>
48         <tag>HEAD</tag>
49         <url>https://github.com/metio/ilo</url>
50     </scm>
52     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
53     <!--                             ISSUE MANAGEMENT                            -->
54     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
55     <!-- https://maven.apache.org/pom.html#Issue_Management -->
56     <issueManagement>
57         <system>GitHub</system>
58         <url>https://github.com/metio/ilo/issues</url>
59     </issueManagement>
61     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
62     <!--                                PROPERTIES                               -->
63     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
64     <!-- https://maven.apache.org/pom.html#Properties -->
65     <properties>
66         <revision>0.0.0-SNAPSHOT</revision>
67         <version.jdk>21</version.jdk>
68         <skipNativeBuild>true</skipNativeBuild>
69         <ilo.mainClass>wtf.metio.ilo.Ilo</ilo.mainClass>
71         <pit.mutationCoverage>65</pit.mutationCoverage>
72         <pmd.skip>true</pmd.skip>
73         <pgp.skip>true</pgp.skip>
74     </properties>
76     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
77     <!--                               DEPENDENCIES                              -->
78     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
79     <!-- https://maven.apache.org/pom.html#Dependencies -->
80     <dependencies>
81         <dependency>
82             <groupId>info.picocli</groupId>
83             <artifactId>picocli</artifactId>
84         </dependency>
85         <dependency>
86             <groupId>org.junit.jupiter</groupId>
87             <artifactId>junit-jupiter-api</artifactId>
88             <scope>test</scope>
89         </dependency>
90         <dependency>
91             <groupId>org.junit.jupiter</groupId>
92             <artifactId>junit-jupiter-params</artifactId>
93             <scope>test</scope>
94         </dependency>
95         <dependency>
96             <groupId>com.tngtech.archunit</groupId>
97             <artifactId>archunit</artifactId>
98             <scope>test</scope>
99         </dependency>
100         <dependency>
101             <groupId>com.tngtech.archunit</groupId>
102             <artifactId>archunit-junit5</artifactId>
103             <scope>test</scope>
104         </dependency>
105         <dependency>
106             <groupId>com.tngtech.archunit</groupId>
107             <artifactId>archunit-junit5-api</artifactId>
108             <scope>test</scope>
109         </dependency>
110         <dependency>
111             <groupId>uk.org.webcompere</groupId>
112             <artifactId>system-stubs-core</artifactId>
113             <scope>test</scope>
114         </dependency>
115         <dependency>
116             <groupId>uk.org.webcompere</groupId>
117             <artifactId>system-stubs-jupiter</artifactId>
118             <scope>test</scope>
119         </dependency>
120         <dependency>
121             <groupId>com.google.jimfs</groupId>
122             <artifactId>jimfs</artifactId>
123             <scope>test</scope>
124         </dependency>
125         <dependency>
126             <groupId>org.slf4j</groupId>
127             <artifactId>slf4j-simple</artifactId>
128             <scope>test</scope>
129         </dependency>
130         <dependency>
131             <groupId>org.graalvm.sdk</groupId>
132             <artifactId>graal-sdk</artifactId>
133             <scope>provided</scope>
134         </dependency>
135     </dependencies>
137     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
138     <!--                                   BUILD                                 -->
139     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
140     <!-- https://maven.apache.org/pom.html#Build -->
141     <build>
142         <plugins>
143             <plugin>
144                 <groupId>org.apache.maven.plugins</groupId>
145                 <artifactId>maven-compiler-plugin</artifactId>
146                 <configuration>
147                     <annotationProcessorPaths>
148                         <path>
149                             <groupId>info.picocli</groupId>
150                             <artifactId>picocli-codegen</artifactId>
151                             <version>4.7.5</version>
152                         </path>
153                     </annotationProcessorPaths>
154                     <compilerArgs>
155                         <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
156                     </compilerArgs>
157                 </configuration>
158             </plugin>
159             <plugin>
160                 <groupId>org.apache.maven.plugins</groupId>
161                 <artifactId>maven-jar-plugin</artifactId>
162                 <configuration>
163                     <archive>
164                         <index>true</index>
165                         <manifest>
166                             <addClasspath>true</addClasspath>
167                             <classpathPrefix>lib</classpathPrefix>
168                             <mainClass>${ilo.mainClass}</mainClass>
169                             <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
170                             <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
171                         </manifest>
172                     </archive>
173                 </configuration>
174             </plugin>
175             <plugin>
176                 <groupId>org.codehaus.mojo</groupId>
177                 <artifactId>templating-maven-plugin</artifactId>
178                 <executions>
179                     <execution>
180                         <id>filter-src</id>
181                         <goals>
182                             <goal>filter-sources</goal>
183                         </goals>
184                     </execution>
185                 </executions>
186             </plugin>
187             <plugin>
188                 <groupId>org.graalvm.buildtools</groupId>
189                 <artifactId>native-maven-plugin</artifactId>
190                 <extensions>true</extensions>
191                 <executions>
192                     <execution>
193                         <id>build-native</id>
194                         <goals>
195                             <goal>compile-no-fork</goal>
196                         </goals>
197                         <phase>package</phase>
198                         <configuration>
199                             <imageName>ilo</imageName>
200                             <mainClass>${ilo.mainClass}</mainClass>
201                             <skipNativeBuild>${skipNativeBuild}</skipNativeBuild>
202                         </configuration>
203                     </execution>
204                 </executions>
205             </plugin>
206             <plugin>
207                 <groupId>org.codehaus.mojo</groupId>
208                 <artifactId>appassembler-maven-plugin</artifactId>
209                 <executions>
210                     <execution>
211                         <phase>package</phase>
212                         <goals>
213                             <goal>assemble</goal>
214                         </goals>
215                     </execution>
216                 </executions>
217                 <configuration>
218                     <licenseHeaderFile>${project.basedir}/src/assembly/licenseHeaderFile</licenseHeaderFile>
219                     <repositoryName>lib</repositoryName>
220                     <repositoryLayout>flat</repositoryLayout>
221                     <programs>
222                         <program>
223                             <mainClass>${ilo.mainClass}</mainClass>
224                             <id>ilo</id>
225                         </program>
226                     </programs>
227                 </configuration>
228             </plugin>
229             <plugin>
230                 <groupId>org.apache.maven.plugins</groupId>
231                 <artifactId>maven-assembly-plugin</artifactId>
232                 <executions>
233                     <execution>
234                         <id>jre-assembly</id>
235                         <phase>package</phase>
236                         <goals>
237                             <goal>single</goal>
238                         </goals>
239                         <configuration>
240                             <descriptors>
241                                 <descriptor>${project.basedir}/src/assembly/jvm.xml</descriptor>
242                             </descriptors>
243                         </configuration>
244                     </execution>
245                 </executions>
246             </plugin>
247             <plugin>
248                 <groupId>net.nicoulaj.maven.plugins</groupId>
249                 <artifactId>checksum-maven-plugin</artifactId>
250                 <executions>
251                     <execution>
252                         <goals>
253                             <goal>artifacts</goal>
254                         </goals>
255                     </execution>
256                 </executions>
257                 <configuration>
258                     <algorithms>
259                         <algorithm>SHA-256</algorithm>
260                         <algorithm>SHA-512</algorithm>
261                     </algorithms>
262                 </configuration>
263             </plugin>
264             <plugin>
265                 <groupId>org.codehaus.mojo</groupId>
266                 <artifactId>exec-maven-plugin</artifactId>
267                 <executions>
268                     <execution>
269                         <id>generateManPages</id>
270                         <phase>process-classes</phase>
271                         <goals>
272                             <goal>java</goal>
273                         </goals>
274                     </execution>
275                 </executions>
276                 <configuration>
277                     <includeProjectDependencies>true</includeProjectDependencies>
278                     <includePluginDependencies>true</includePluginDependencies>
279                     <mainClass>picocli.codegen.docgen.manpage.ManPageGenerator</mainClass>
280                     <arguments>
281                         <argument>--outdir=${project.build.directory}/generated-picocli-docs</argument>
282                         <argument>wtf.metio.ilo.shell.ShellCommand</argument>
283                     </arguments>
284                 </configuration>
285                 <dependencies>
286                     <dependency>
287                         <groupId>info.picocli</groupId>
288                         <artifactId>picocli-codegen</artifactId>
289                         <version>4.7.5</version>
290                         <type>jar</type>
291                     </dependency>
292                 </dependencies>
293             </plugin>
294             <plugin>
295                 <groupId>org.asciidoctor</groupId>
296                 <artifactId>asciidoctor-maven-plugin</artifactId>
297                 <executions>
298                     <execution>
299                         <id>output-html</id>
300                         <phase>process-classes</phase>
301                         <goals>
302                             <goal>process-asciidoc</goal>
303                         </goals>
304                         <configuration>
305                             <backend>html5</backend>
306                         </configuration>
307                     </execution>
308                     <execution>
309                         <id>output-manpage</id>
310                         <phase>process-classes</phase>
311                         <goals>
312                             <goal>process-asciidoc</goal>
313                         </goals>
314                         <configuration>
315                             <backend>manpage</backend>
316                         </configuration>
317                     </execution>
318                 </executions>
319                 <configuration>
320                     <sourceDirectory>${project.build.directory}/generated-picocli-docs</sourceDirectory>
321                 </configuration>
322             </plugin>
323             <plugin>
324                 <groupId>org.jacoco</groupId>
325                 <artifactId>jacoco-maven-plugin</artifactId>
326                 <executions>
327                     <execution>
328                         <id>prepare-coverage-agent</id>
329                         <goals>
330                             <goal>prepare-agent</goal>
331                         </goals>
332                     </execution>
333                     <execution>
334                         <id>check-coverage</id>
335                         <goals>
336                             <goal>check</goal>
337                         </goals>
338                         <configuration>
339                             <rules>
340                                 <rule>
341                                     <element>BUNDLE</element>
342                                     <excludes>
343                                         <exclude>*Test</exclude>
344                                     </excludes>
345                                     <limits>
346                                         <limit>
347                                             <counter>INSTRUCTION</counter>
348                                             <value>COVEREDRATIO</value>
349                                             <minimum>0.75</minimum>
350                                         </limit>
351                                         <limit>
352                                             <counter>CLASS</counter>
353                                             <value>MISSEDCOUNT</value>
354                                             <maximum>0</maximum>
355                                         </limit>
356                                     </limits>
357                                 </rule>
358                             </rules>
359                         </configuration>
360                     </execution>
361                 </executions>
362             </plugin>
363         </plugins>
364     </build>
366     <profiles>
367         <profile>
368             <id>release</id>
369             <build>
370                 <plugins>
371                     <plugin>
372                         <groupId>org.simplify4u.plugins</groupId>
373                         <artifactId>sign-maven-plugin</artifactId>
374                         <version>1.0.1</version>
375                         <executions>
376                             <execution>
377                                 <goals>
378                                     <goal>sign</goal>
379                                 </goals>
380                             </execution>
381                         </executions>
382                     </plugin>
383                 </plugins>
384             </build>
385         </profile>
386         <profile>
387             <id>native-linux</id>
388             <activation>
389                 <property>
390                     <name>skipNativeBuild</name>
391                     <value>false</value>
392                 </property>
393                 <os>
394                     <family>unix</family>
395                 </os>
396             </activation>
397             <build>
398                 <plugins>
399                     <plugin>
400                         <groupId>org.apache.maven.plugins</groupId>
401                         <artifactId>maven-assembly-plugin</artifactId>
402                         <executions>
403                             <execution>
404                                 <id>native-assembly</id>
405                                 <phase>package</phase>
406                                 <goals>
407                                     <goal>single</goal>
408                                 </goals>
409                                 <configuration>
410                                     <descriptors>
411                                         <descriptor>src/assembly/linux.xml</descriptor>
412                                     </descriptors>
413                                 </configuration>
414                             </execution>
415                         </executions>
416                     </plugin>
417                 </plugins>
418             </build>
419         </profile>
420         <profile>
421             <id>native-mac</id>
422             <activation>
423                 <property>
424                     <name>skipNativeBuild</name>
425                     <value>false</value>
426                 </property>
427                 <os>
428                     <family>mac</family>
429                 </os>
430             </activation>
431             <build>
432                 <plugins>
433                     <plugin>
434                         <groupId>org.apache.maven.plugins</groupId>
435                         <artifactId>maven-assembly-plugin</artifactId>
436                         <executions>
437                             <execution>
438                                 <id>native-assembly</id>
439                                 <phase>package</phase>
440                                 <goals>
441                                     <goal>single</goal>
442                                 </goals>
443                                 <configuration>
444                                     <descriptors>
445                                         <descriptor>src/assembly/mac.xml</descriptor>
446                                     </descriptors>
447                                 </configuration>
448                             </execution>
449                         </executions>
450                     </plugin>
451                 </plugins>
452             </build>
453         </profile>
454         <profile>
455             <id>native-windows</id>
456             <activation>
457                 <property>
458                     <name>skipNativeBuild</name>
459                     <value>false</value>
460                 </property>
461                 <os>
462                     <family>windows</family>
463                 </os>
464             </activation>
465             <build>
466                 <plugins>
467                     <plugin>
468                         <groupId>org.apache.maven.plugins</groupId>
469                         <artifactId>maven-assembly-plugin</artifactId>
470                         <executions>
471                             <execution>
472                                 <id>native-assembly</id>
473                                 <phase>package</phase>
474                                 <goals>
475                                     <goal>single</goal>
476                                 </goals>
477                                 <configuration>
478                                     <descriptors>
479                                         <descriptor>src/assembly/windows.xml</descriptor>
480                                     </descriptors>
481                                 </configuration>
482                             </execution>
483                         </executions>
484                     </plugin>
485                 </plugins>
486             </build>
487         </profile>
488     </profiles>
490 </project>