blob: 9b63a0645ff23dd2df9ce4c77ee6adbb04955f71 [file] [log] [blame]
Matthias Andreas Benkarda1e84432023-12-05 21:12:16 +01001<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4SPDX-FileCopyrightText: © 2023 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
5
6SPDX-License-Identifier: GPL-3.0-or-later
7-->
8
9<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
16 <version>0.1.8-SNAPSHOT</version>
17
18 <artifactId>jgvariant-tool</artifactId>
19 <packaging>jar</packaging>
20
21 <name>JGVariant Command Line Tool</name>
22 <url>https://gerrit.benkard.de/plugins/gitiles/jgvariant</url>
23
24 <description>
25 GVariant command line tool.
26 </description>
27
28 <parent>
29 <groupId>eu.mulk.jgvariant</groupId>
30 <artifactId>jgvariant-parent</artifactId>
31 <version>0.1.8-SNAPSHOT</version>
32 <relativePath>../jgvariant-parent/pom.xml</relativePath>
33 </parent>
34
35 <dependencies>
36 <!-- JGVariant -->
37 <dependency>
38 <groupId>eu.mulk.jgvariant</groupId>
39 <artifactId>jgvariant-core</artifactId>
40 <version>0.1.8-SNAPSHOT</version>
41 </dependency>
42 <dependency>
43 <groupId>eu.mulk.jgvariant</groupId>
44 <artifactId>jgvariant-ostree</artifactId>
45 <version>0.1.8-SNAPSHOT</version>
46 </dependency>
47
48 <!-- Annotations -->
49 <dependency>
50 <groupId>com.google.errorprone</groupId>
51 <artifactId>error_prone_annotations</artifactId>
52 <scope>provided</scope>
53 </dependency>
54 <dependency>
55 <groupId>org.jetbrains</groupId>
56 <artifactId>annotations</artifactId>
57 <scope>provided</scope>
58 </dependency>
59 <dependency>
60 <groupId>org.apiguardian</groupId>
61 <artifactId>apiguardian-api</artifactId>
62 <scope>provided</scope>
63 </dependency>
64
65 <!-- Command line tooling -->
66 <dependency>
67 <groupId>info.picocli</groupId>
68 <artifactId>picocli</artifactId>
69 </dependency>
70
71 <!-- JSON -->
72 <dependency>
73 <groupId>org.eclipse</groupId>
74 <artifactId>yasson</artifactId>
75 </dependency>
Matthias Andreas Benkarda1e84432023-12-05 21:12:16 +010076 </dependencies>
77
78 <build>
79 <plugins>
80 <plugin>
81 <groupId>org.apache.maven.plugins</groupId>
82 <artifactId>maven-compiler-plugin</artifactId>
83 <configuration>
84 <annotationProcessorPaths>
85 <path>
86 <groupId>info.picocli</groupId>
87 <artifactId>picocli-codegen</artifactId>
88 <version>${picocli.version}</version>
89 </path>
90 </annotationProcessorPaths>
91 <compilerArgs>
92 <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
93 </compilerArgs>
94 </configuration>
95 </plugin>
96
97 <plugin>
98 <groupId>org.apache.maven.plugins</groupId>
99 <artifactId>maven-jar-plugin</artifactId>
100 <configuration>
101 <archive>
102 <manifest>
103 <mainClass>eu.mulk.jgvariant.tool.Main</mainClass>
104 </manifest>
Matthias Andreas Benkard04a5ce12023-12-07 19:36:24 +0100105 <manifestEntries>
106 <Multi-Release>true</Multi-Release>
107 </manifestEntries>
Matthias Andreas Benkarda1e84432023-12-05 21:12:16 +0100108 </archive>
109 </configuration>
110 </plugin>
111 </plugins>
112 </build>
113
114 <profiles>
115 <profile>
116 <id>shade</id>
117 <build>
118 <plugins>
119 <plugin>
120 <groupId>org.apache.maven.plugins</groupId>
121 <artifactId>maven-shade-plugin</artifactId>
122 <executions>
123 <execution>
124 <phase>package</phase>
125 <goals>
126 <goal>shade</goal>
127 </goals>
128 </execution>
129 </executions>
130 </plugin>
131 </plugins>
132 </build>
133 </profile>
134
135 <profile>
136 <id>uberjar</id>
137 <build>
138 <plugins>
139 <plugin>
140 <groupId>org.apache.maven.plugins</groupId>
141 <artifactId>maven-assembly-plugin</artifactId>
142 <executions>
143 <execution>
144 <phase>package</phase>
145 <goals>
146 <goal>single</goal>
147 </goals>
148 <configuration>
149 <archive>
150 <manifest>
151 <mainClass>eu.mulk.jgvariant.tool.Main</mainClass>
152 </manifest>
Matthias Andreas Benkard04a5ce12023-12-07 19:36:24 +0100153 <manifestEntries>
154 <Multi-Release>true</Multi-Release>
155 </manifestEntries>
Matthias Andreas Benkarda1e84432023-12-05 21:12:16 +0100156 </archive>
157 <descriptorRefs>
158 <descriptorRef>jar-with-dependencies</descriptorRef>
159 </descriptorRefs>
160 </configuration>
161 </execution>
162 </executions>
163 </plugin>
164 </plugins>
165 </build>
166 </profile>
167
168 <profile>
169 <id>native</id>
170 <build>
171 <plugins>
172 <plugin>
173 <groupId>org.graalvm.buildtools</groupId>
174 <artifactId>native-maven-plugin</artifactId>
175 <extensions>true</extensions>
176 <executions>
177 <execution>
178 <id>build-native</id>
179 <goals>
180 <goal>compile-no-fork</goal>
181 </goals>
182 <phase>package</phase>
183 </execution>
184 <execution>
185 <id>test-native</id>
186 <goals>
187 <goal>test</goal>
188 </goals>
189 <phase>test</phase>
190 </execution>
191 </executions>
192 <configuration>
193 <debug>false</debug>
194 <fallback>false</fallback>
195 <buildArgs>
196 <arg>-O3</arg>
197 <arg>--strict-image-heap</arg>
198 </buildArgs>
199 <imageName>jgvariant</imageName>
200 </configuration>
201 </plugin>
202 </plugins>
203 </build>
204 </profile>
205
206 <profile>
207 <id>jpackage</id>
208 <build>
209 <plugins>
210 <plugin>
211 <groupId>com.github.akman</groupId>
212 <artifactId>jpackage-maven-plugin</artifactId>
213 <executions>
214 <execution>
215 <phase>package</phase>
216 <goals>
217 <goal>jpackage</goal>
218 </goals>
219 <configuration>
220 <type>IMAGE</type>
221 <module>eu.mulk.jgvariant.tool/eu.mulk.jgvariant.tool.Main</module>
222 <modulepath>
223 <dependencysets>
224 <dependencyset>
225 <includeoutput>true</includeoutput>
226 <excludeautomatic>true</excludeautomatic>
227 </dependencyset>
228 </dependencysets>
229 </modulepath>
230 </configuration>
231 </execution>
232 </executions>
233 </plugin>
234 </plugins>
235 </build>
236 </profile>
Matthias Andreas Benkard40bd44a2023-12-05 21:48:46 +0100237
238 <profile>
239 <id>exec</id>
240 <build>
241 <plugins>
242 <plugin>
243 <groupId>org.codehaus.mojo</groupId>
244 <artifactId>exec-maven-plugin</artifactId>
245 <executions>
246 <execution>
247 <phase>verify</phase>
248 <goals>
249 <goal>java</goal>
250 </goals>
251 </execution>
252 </executions>
253 <configuration>
254 <mainClass>eu.mulk.jgvariant.tool.Main</mainClass>
255 <arguments/>
256 </configuration>
257 </plugin>
258 </plugins>
259 </build>
260 </profile>
Matthias Andreas Benkarda1e84432023-12-05 21:12:16 +0100261 </profiles>
262
263</project>