blob: 5511f7296ff7e2196ef7163b7db02c4edb61c6c9 [file] [log] [blame]
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +01001<?xml version="1.0"?>
Matthias Andreas Benkard7d46f072026-08-24 21:43:05 +02002<!-- SPDX-FileCopyrightText: 2020-2026 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
Matthias Andreas Benkard279fca62026-08-23 08:32:08 +02003 SPDX-License-Identifier: AGPL-3.0-or-later -->
Matthias Andreas Benkard545aeb62020-12-06 15:16:22 +01004<project
5 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
6 xmlns="http://maven.apache.org/POM/4.0.0"
7 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +01008
9 <modelVersion>4.0.0</modelVersion>
10
11 <groupId>eu.mulk</groupId>
12 <artifactId>aendggner</artifactId>
13 <version>${revision}</version>
14
Matthias Andreas Benkardd10ce7c2026-08-23 08:32:31 +020015 <licenses>
16 <license>
17 <name>AGPL-3.0-or-later</name>
18 <url>https://www.gnu.org/licenses/agpl-3.0.html</url>
19 <distribution>repo</distribution>
20 <comments>Wortlaut im Quelltext unter LICENSES/AGPL-3.0-or-later.txt (COPYING).</comments>
21 </license>
22 </licenses>
23
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010024 <properties>
25 <maven.compiler.parameters>true</maven.compiler.parameters>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020026 <maven.compiler.release>21</maven.compiler.release>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010027
28 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
29 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
30
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020031 <enforced.maven-version>3.9.0</enforced.maven-version>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010032
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +020033 <build-helper-plugin.version>3.6.0</build-helper-plugin.version>
Matthias Andreas Benkardf3b47af2026-08-22 21:23:06 +020034 <clean-plugin.version>3.3.2</clean-plugin.version>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020035 <compiler-plugin.version>3.15.0</compiler-plugin.version>
36 <dependency-plugin.version>3.11.0</dependency-plugin.version>
Matthias Andreas Benkarda94bdec2026-08-24 22:54:17 +020037 <deploy-plugin.version>3.1.4</deploy-plugin.version>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020038 <enforcer-plugin.version>3.6.3</enforcer-plugin.version>
39 <exec-plugin.version>3.6.3</exec-plugin.version>
40 <jar-plugin.version>3.5.0</jar-plugin.version>
41 <resources-plugin.version>3.5.0</resources-plugin.version>
42 <spotless-plugin.version>3.8.0</spotless-plugin.version>
43 <surefire-plugin.version>3.5.6</surefire-plugin.version>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010044
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020045 <google.java.format.version>1.28.0</google.java.format.version>
46
47 <assertj.version>3.27.7</assertj.version>
48 <java-diff-utils.version>4.17</java-diff-utils.version>
49 <jboss-logging.version>3.6.3.Final</jboss-logging.version>
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +020050 <jzlib.version>1.1.5</jzlib.version>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020051 <jspecify.version>1.0.0</jspecify.version>
52 <junit.version>5.13.4</junit.version>
53 <pdfbox.version>3.0.8</pdfbox.version>
54 <picocli.version>4.7.7</picocli.version>
55 <slf4j.version>2.0.18</slf4j.version>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010056 </properties>
57
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020058 <dependencyManagement>
59 <dependencies>
60 <dependency>
61 <groupId>org.junit</groupId>
62 <artifactId>junit-bom</artifactId>
63 <version>${junit.version}</version>
64 <type>pom</type>
65 <scope>import</scope>
66 </dependency>
67 </dependencies>
68 </dependencyManagement>
69
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010070 <dependencies>
71
72 <!-- Annotations -->
73 <dependency>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020074 <groupId>org.jspecify</groupId>
75 <artifactId>jspecify</artifactId>
76 <version>${jspecify.version}</version>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010077 </dependency>
78
Matthias Andreas Benkard31a2c502020-11-22 14:36:27 +010079 <!-- Command line parsing -->
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010080 <dependency>
81 <groupId>info.picocli</groupId>
82 <artifactId>picocli</artifactId>
83 <version>${picocli.version}</version>
84 </dependency>
85
Matthias Andreas Benkard545aeb62020-12-06 15:16:22 +010086 <!-- Logging -->
87 <dependency>
88 <groupId>org.jboss.logging</groupId>
89 <artifactId>jboss-logging</artifactId>
90 <version>${jboss-logging.version}</version>
91 </dependency>
Matthias Andreas Benkard545aeb62020-12-06 15:16:22 +010092 <dependency>
93 <groupId>org.slf4j</groupId>
94 <artifactId>slf4j-jdk14</artifactId>
95 <version>${slf4j.version}</version>
96 </dependency>
97 <dependency>
98 <groupId>org.slf4j</groupId>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +020099 <artifactId>jcl-over-slf4j</artifactId>
Matthias Andreas Benkard545aeb62020-12-06 15:16:22 +0100100 <version>${slf4j.version}</version>
101 </dependency>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200102
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200103 <!-- PDF text extraction -->
Matthias Andreas Benkard31a2c502020-11-22 14:36:27 +0100104 <dependency>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200105 <groupId>org.apache.pdfbox</groupId>
106 <artifactId>pdfbox</artifactId>
107 <version>${pdfbox.version}</version>
108 </dependency>
109
110 <!-- Text diffing -->
111 <dependency>
112 <groupId>io.github.java-diff-utils</groupId>
113 <artifactId>java-diff-utils</artifactId>
114 <version>${java-diff-utils.version}</version>
115 </dependency>
116
117 <!-- Testing -->
118 <dependency>
119 <groupId>org.junit.jupiter</groupId>
120 <artifactId>junit-jupiter</artifactId>
121 <scope>test</scope>
Matthias Andreas Benkard31a2c502020-11-22 14:36:27 +0100122 </dependency>
123 <dependency>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200124 <groupId>org.assertj</groupId>
125 <artifactId>assertj-core</artifactId>
126 <version>${assertj.version}</version>
127 <scope>test</scope>
Matthias Andreas Benkard31a2c502020-11-22 14:36:27 +0100128 </dependency>
129
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100130 </dependencies>
131
132 <build>
133
Matthias Andreas Benkard545aeb62020-12-06 15:16:22 +0100134 <resources>
135 <resource>
136 <directory>src/main/resources</directory>
137 </resource>
138 </resources>
139
Matthias Andreas Benkardf3b47af2026-08-22 21:23:06 +0200140 <!--
141 Der Beispielkorpus liegt unter src/test/resources, wird aber von den Tests über
142 Dateisystempfade gelesen, nicht über den Klassenpfad. Eine Kopie nach
143 target/test-classes wäre deshalb bei jedem Bau 35 MB umsonst.
144 -->
145 <testResources>
146 <testResource>
147 <directory>src/test/resources</directory>
148 <excludes>
149 <exclude>sampledata/**</exclude>
150 </excludes>
151 </testResource>
152 </testResources>
153
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100154 <pluginManagement>
155 <plugins>
156
157 <plugin>
158 <groupId>org.codehaus.mojo</groupId>
159 <artifactId>versions-maven-plugin</artifactId>
160 <configuration>
161 <generateBackupPoms>false</generateBackupPoms>
162 </configuration>
163 </plugin>
164
165 </plugins>
166 </pluginManagement>
167
168 <plugins>
169
170 <!-- Compiler -->
171 <plugin>
172 <artifactId>maven-compiler-plugin</artifactId>
173 <version>${compiler-plugin.version}</version>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100174 <configuration>
175 <annotationProcessorPaths>
176 <path>
177 <groupId>info.picocli</groupId>
178 <artifactId>picocli-codegen</artifactId>
179 <version>${picocli.version}</version>
180 </path>
181 </annotationProcessorPaths>
182 <compilerArgs>
183 <arg>-Aproject=${project.groupId}/${project.artifactId}</arg>
184 </compilerArgs>
185 </configuration>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100186 </plugin>
187
188 <!-- Resources -->
189 <plugin>
190 <artifactId>maven-resources-plugin</artifactId>
191 <version>${resources-plugin.version}</version>
192 </plugin>
193
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200194 <!-- Tests -->
195 <plugin>
196 <artifactId>maven-surefire-plugin</artifactId>
197 <version>${surefire-plugin.version}</version>
198 </plugin>
199
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100200 <!-- Google Java Code Formatter, for enforcing style conventions -->
201 <plugin>
202 <groupId>com.diffplug.spotless</groupId>
203 <artifactId>spotless-maven-plugin</artifactId>
204 <version>${spotless-plugin.version}</version>
205 <configuration>
206 <java>
Matthias Andreas Benkard279fca62026-08-23 08:32:08 +0200207 <!-- src/wasm/java tritt dem Quellbaum erst im Profil -Pwasm bei; damit die
208 beiden Wasm-Klassen dennoch stets mitgeprüft werden, sind die
209 Quellverzeichnisse hier ausdrücklich benannt. -->
210 <includes>
211 <include>src/*/java/**/*.java</include>
212 </includes>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100213 <removeUnusedImports/>
214 <importOrder>
215 <order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
216 </importOrder>
217 <googleJavaFormat>
218 <version>${google.java.format.version}</version>
219 <style>GOOGLE</style>
220 </googleJavaFormat>
Matthias Andreas Benkard279fca62026-08-23 08:32:08 +0200221 <licenseHeader>
Matthias Andreas Benkard7d46f072026-08-24 21:43:05 +0200222 <content><![CDATA[// SPDX-FileCopyrightText: $YEAR Matthias Andreas Benkard <code@mail.matthias.benkard.de>
Matthias Andreas Benkard279fca62026-08-23 08:32:08 +0200223// SPDX-License-Identifier: AGPL-3.0-or-later
224
225]]></content>
226 </licenseHeader>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100227 </java>
228 </configuration>
Matthias Andreas Benkardd10ce7c2026-08-23 08:32:31 +0200229 <executions>
230 <!-- Hält den Bau an, sobald eine Quelldatei ohne SPDX-Kopfzeile oder ohne
231 die vereinbarte Formatierung hinzukommt. -->
232 <execution>
233 <id>spotless-check</id>
234 <phase>verify</phase>
235 <goals>
236 <goal>check</goal>
237 </goals>
238 </execution>
239 </executions>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100240 </plugin>
241
242 <plugin>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100243 <groupId>org.apache.maven.plugins</groupId>
244 <artifactId>maven-enforcer-plugin</artifactId>
245 <version>${enforcer-plugin.version}</version>
246 <executions>
247 <execution>
248 <id>enforce-maven</id>
249 <goals>
250 <goal>enforce</goal>
251 </goals>
252 <configuration>
253 <rules>
254 <requireMavenVersion>
255 <version>${enforced.maven-version}</version>
256 </requireMavenVersion>
257 </rules>
258 </configuration>
259 </execution>
260 </executions>
261 </plugin>
262
263 <plugin>
264 <groupId>org.codehaus.mojo</groupId>
265 <artifactId>exec-maven-plugin</artifactId>
266 <version>${exec-plugin.version}</version>
267 <configuration>
268 <mainClass>eu.mulk.aendggner.AendGgner</mainClass>
269 </configuration>
270 </plugin>
271
272 <plugin>
273 <groupId>org.apache.maven.plugins</groupId>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100274 <artifactId>maven-dependency-plugin</artifactId>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200275 <version>${dependency-plugin.version}</version>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100276 <executions>
277 <execution>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100278 <id>copy-dependencies</id>
279 <phase>prepare-package</phase>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100280 <goals>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100281 <goal>copy-dependencies</goal>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100282 </goals>
283 <configuration>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100284 <outputDirectory>
285 ${project.build.directory}/libs
286 </outputDirectory>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200287 <includeScope>runtime</includeScope>
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100288 </configuration>
289 </execution>
290 </executions>
291 </plugin>
292
Matthias Andreas Benkarda94bdec2026-08-24 22:54:17 +0200293 <!--
294 Das Erzeugnis geht nicht in ein Maven-Repositorium: es ist eine Anwendung, keine
295 Bibliothek, und seine Fassungsbezeichnung ist die CI-freundliche ${revision}
296 (.mvn/maven.config), die ohne Flatten kein brauchbares POM ergäbe. Ausgeliefert
297 wird nach Cloudflare Workers. Das Ziel „deploy:deploy“ ist deshalb stillgelegt und
298 die Phase steht dem Profil „wasm“ offen (README § 15). „install“ bleibt unberührt.
299 -->
300 <plugin>
301 <groupId>org.apache.maven.plugins</groupId>
302 <artifactId>maven-deploy-plugin</artifactId>
303 <version>${deploy-plugin.version}</version>
304 <configuration>
305 <skip>true</skip>
306 </configuration>
307 </plugin>
308
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100309 <plugin>
310 <groupId>org.apache.maven.plugins</groupId>
311 <artifactId>maven-jar-plugin</artifactId>
Matthias Andreas Benkard1b9bfb12026-07-13 07:08:31 +0200312 <version>${jar-plugin.version}</version>
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +0100313 <configuration>
314 <archive>
315 <manifest>
316 <addClasspath>true</addClasspath>
317 <classpathPrefix>libs/</classpathPrefix>
318 <mainClass>
319 eu.mulk.aendggner.AendGgner
320 </mainClass>
321 </manifest>
322 </archive>
323 </configuration>
324 </plugin>
325
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100326 </plugins>
327
328 </build>
329
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200330 <profiles>
331
332 <!--
333 Browserfassung: übersetzt dieselbe Pipeline mit GraalVM Web Image nach WebAssembly.
334 Ausdrücklich anzufordern (`-Pwasm`); der Standard-Build bleibt unberührt und braucht
335 kein GraalVM.
336
337 Voraussetzung: Oracle GraalVM 25.1+ (Web Image ist dort enthalten, in der CE nicht):
338
339 JAVA_HOME=/pfad/zu/oracle-graalvm ./mvnw -Pwasm package
340
341 Ergebnis: target/web/ — aendggner.js, aendggner.js.wasm und die statischen Seiten.
342 -->
343 <profile>
344 <id>wasm</id>
345
346 <properties>
347 <native-image.executable>${java.home}/bin/native-image</native-image.executable>
348 <wasm.output.directory>${project.build.directory}/web</wasm.output.directory>
349 <!--
350 Die Option „release 21“ beschränkte den Modulpfad auf die dokumentierte JDK-API; die
351 Web-Image-API des GraalVM wäre damit unsichtbar. Deshalb hier source/target statt
352 release — übersetzt wird ohnehin nur mit dem GraalVM, gegen dessen eigene Klassen.
353 -->
354 <maven.compiler.release/>
355 <maven.compiler.source>21</maven.compiler.source>
356 <maven.compiler.target>21</maven.compiler.target>
357 </properties>
358
359 <dependencies>
360 <!--
361 Reines Java-zlib. Web Image bindet die nativen zlib-Funktionen des JDK nicht an
362 (GR-65205); ohne Inflate ist kein PDF lesbar. Siehe
363 src/wasm/java/.../InflaterErsatz.java.
364 -->
365 <dependency>
366 <groupId>org.jruby</groupId>
367 <artifactId>jzlib</artifactId>
368 <version>${jzlib.version}</version>
369 </dependency>
370 </dependencies>
371
372 <build>
373 <plugins>
374
375 <!-- Der Wasm-Quellbaum kommt nur in diesem Profil hinzu: Er braucht die
376 Web-Image-API und svm.jar, die es nur im GraalVM gibt. -->
377 <plugin>
378 <groupId>org.codehaus.mojo</groupId>
379 <artifactId>build-helper-maven-plugin</artifactId>
380 <version>${build-helper-plugin.version}</version>
381 <executions>
382 <execution>
383 <id>wasm-quellen</id>
384 <phase>generate-sources</phase>
385 <goals>
386 <goal>add-source</goal>
387 </goals>
388 <configuration>
389 <sources>
390 <source>src/wasm/java</source>
391 </sources>
392 </configuration>
393 </execution>
394 </executions>
395 </plugin>
396
397 <plugin>
398 <artifactId>maven-compiler-plugin</artifactId>
399 <configuration>
400 <compilerArgs>
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200401 <arg>--add-modules</arg>
402 <arg>org.graalvm.webimage.api</arg>
403 </compilerArgs>
Matthias Andreas Benkardf3b47af2026-08-22 21:23:06 +0200404 <!--
405 Ohne Picocli-Annotationsprozessor: Er meldet die Befehlszeilenklasse
406 eu.mulk.aendggner.AendGgner mit „allDeclaredMethods“ zur Reflexion an, und
407 die Erreichbarkeitsanalyse zieht daraufhin die gesamte Befehlszeilenfassung
408 samt Picocli und den Dateizugriffen ins Browser-Image, obwohl BrowserMain
409 nichts davon anfasst. Im Browser gibt es keine Befehlszeile.
410 -->
411 <proc>none</proc>
412 <annotationProcessorPaths/>
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200413 </configuration>
414 </plugin>
415
Matthias Andreas Benkardf3b47af2026-08-22 21:23:06 +0200416 <!--
417 Ein vorangegangener gewöhnlicher Bau hat die Picocli-Konfiguration womöglich
418 schon nach target/classes gelegt; native-image liest sie von dort auch dann,
419 wenn dieser Bau sie nicht mehr erzeugt. Also fort damit, sonst hinge die
420 Bildgröße davon ab, was vorher lief.
421 -->
422 <plugin>
423 <artifactId>maven-clean-plugin</artifactId>
424 <version>${clean-plugin.version}</version>
425 <executions>
426 <execution>
427 <id>picocli-konfiguration-fort</id>
428 <phase>prepare-package</phase>
429 <goals>
430 <goal>clean</goal>
431 </goals>
432 <configuration>
433 <excludeDefaultDirectories>true</excludeDefaultDirectories>
434 <filesets>
435 <fileset>
436 <directory>
437 ${project.build.outputDirectory}/META-INF/native-image/picocli-generated
438 </directory>
439 </fileset>
440 </filesets>
441 </configuration>
442 </execution>
443 </executions>
444 </plugin>
445
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200446 <plugin>
447 <artifactId>maven-resources-plugin</artifactId>
448 <executions>
449 <execution>
450 <id>statische-seiten</id>
451 <phase>package</phase>
452 <goals>
453 <goal>copy-resources</goal>
454 </goals>
455 <configuration>
456 <outputDirectory>${wasm.output.directory}</outputDirectory>
457 <resources>
458 <resource>
459 <directory>src/main/resources/eu/mulk/aendggner/web</directory>
460 </resource>
461 </resources>
462 </configuration>
463 </execution>
464 </executions>
465 </plugin>
466
467 <plugin>
468 <groupId>org.codehaus.mojo</groupId>
469 <artifactId>exec-maven-plugin</artifactId>
470 <executions>
471 <execution>
472 <id>web-image</id>
473 <phase>package</phase>
474 <goals>
475 <goal>exec</goal>
476 </goals>
477 <configuration>
478 <executable>${native-image.executable}</executable>
479 <arguments>
480 <argument>--tool:svm-wasm</argument>
Matthias Andreas Benkardf3b47af2026-08-22 21:23:06 +0200481 <!-- Größe vor Durchsatz: Das Modul muss über die Leitung, und die
482 Rechenzeit einer Synopse liegt ohnehin im Sekundenbereich. -->
483 <argument>-Os</argument>
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200484 <!-- Der Textzwischenschritt (aendggner.js.wat) wird sonst mehrere hundert
485 Megabyte groß; auf die Größe des .wasm hat das keinen Einfluss. -->
486 <argument>-H:WasmComments=NONE</argument>
487 <argument>-classpath</argument>
488 <classpath/>
489 <argument>-o</argument>
490 <argument>${wasm.output.directory}/aendggner</argument>
491 <argument>eu.mulk.aendggner.wasm.BrowserMain</argument>
492 </arguments>
493 </configuration>
494 </execution>
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200495
496 <!--
497 Macht aus dem Übersetzerergebnis ein auslieferbares Verzeichnis: entfernt den
498 .wat-Zwischenschritt, legt den Quelltext der gebauten Fassung bei (AGPLv3 §13)
499 und komprimiert vor. Läuft in derselben Phase, aber nach „web-image“ — Maven
500 führt gleichphasige Ausführungen in Deklarationsreihenfolge aus.
501 -->
502 <execution>
503 <id>webpaket</id>
504 <phase>package</phase>
505 <goals>
506 <goal>exec</goal>
507 </goals>
508 <configuration>
509 <executable>${project.basedir}/deploy/webpaket.sh</executable>
510 <arguments>
511 <argument>${wasm.output.directory}</argument>
512 </arguments>
513 </configuration>
514 </execution>
Matthias Andreas Benkarda94bdec2026-08-24 22:54:17 +0200515
516 <!--
517 Die Auslieferung. Hochgeladen wird allein das Verzeichnis, das „webpaket“
518 auslieferfertig hinterlassen hat; welches, sagt wrangler.toml im
519 Projektverzeichnis. Ein Lauf von `./mvnw -Pwasm deploy` baut und liefert
520 also in einem Zuge aus, und die Prüfungen aus webpaket.sh (sauberer
521 Arbeitsbaum für den Quelltext nach AGPLv3 §13, 25-MiB-Grenze) liegen vor
522 dem Hochladen. Vorausgesetzt wird ein angemeldetes „wrangler“ im Pfad.
523 -->
524 <execution>
525 <id>cloudflare</id>
526 <phase>deploy</phase>
527 <goals>
528 <goal>exec</goal>
529 </goals>
530 <configuration>
531 <executable>wrangler</executable>
532 <workingDirectory>${project.basedir}</workingDirectory>
533 <arguments>
534 <argument>deploy</argument>
535 </arguments>
536 </configuration>
537 </execution>
Matthias Andreas Benkard2b1841e2026-08-15 10:51:11 +0200538 </executions>
539 </plugin>
540
541 </plugins>
542 </build>
543 </profile>
544
545 </profiles>
546
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100547</project>