Änderungen von Dokument Plugin-Entwicklung


Von Version 3.3
bearbeitet von awa
am 25.02.2022, 11:39
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 6.1
bearbeitet von awa
am 25.02.2022, 13:40
Änderungskommentar: Neuen Anhang pom.xml hochladen

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,6 +1,5 @@
1 1  {{content/}}
2 2  
3 -== Plugins für zusätzliche Funktionalitäten ==
4 4  
5 5  {{formcycle/}} bietet ein Vielzahl von Einstiegspunkten für die Erweiterung der Standard-Funktionalitäten durch Plugins. Basierend auf den einzelnen [[Plugin-Typen>>doc:Formcycle.PluginDevelopment.Types.WebHome]] werden diese zu gewissen Zeitpunkten automatisch oder manuell angesprochen und erlauben es somit von der Ersetzung eigener Platzhalter bis hin zur Implementierung eigener Verarbeitungslogik {{formcycle/}} anzupassen. Als fundamentaler erster Schritt für die Entwicklung eigener Plugins ist hierbei das Erstellen eines entsprechenden Java-Projekts anzusehen.
6 6  
... ... @@ -8,15 +8,15 @@
8 8  
9 9  Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Javadocs>>https://docs.formcycle.eu/]]
10 10  
11 -== Projekt-Setup ==
10 +== Maven-Setup ==
12 12  
13 13  Zu Beginn der Entwicklung eines Plugins ist es nötig das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren.
14 14  
15 15  Für letzteres empfehlen wir hierbei das Build-Management-Tool [[Apache Maven>>url:https://maven.apache.org/||rel="__blank"]] zum Einsatz. Andere Build-Tools können prinzipiell benutzt werden, hier können wir aber keine Hilfe bereitstellen.
16 16  
17 -Um die entsprechenden Abhängigkeiten zu {{formcycle case="dat"/}} bereitzustellen, ist das Repository unter der URL [[https:~~/~~/artifactory.xima-services.de/artifactory/fc-plugin-dev>>url:https://artifactory.xima-services.de/artifactory/fc-plugin-dev]] zu benutzen. Dieses enthält alle öffentlich zur Verfügung stehenden Artefakte, welche dem Plugin zur Laufzeit bereitgestellt und während der Entwicklung benötigt werden. Ausgangspunkt ist hierbei das Artefakt //fc-plugin-common//, welches die einzelnen Plugin-Schnittstellen beinhaltet und auch auf [[unserere Downloadseite zur Verfügung steht>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common/]].
16 +Um die entsprechenden Abhängigkeiten zu {{formcycle case="dat"/}} bereitzustellen, ist das Repository unter der URL [[https:~~/~~/artifactory.xima-services.de/artifactory/fc-plugin-dev>>url:https://artifactory.xima-services.de/artifactory/fc-plugin-dev]] zu benutzen. Dieses enthält alle öffentlich zur Verfügung stehenden Artefakte, welche dem Plugin zur Laufzeit bereitgestellt und während der Entwicklung benötigt werden.
18 18  
19 -Damit das Repository auch beim Bauen mit Maven verwendet wird, sollte folgendes in die Maven-Konfigurationsdatei //settings.xml// geschrieben werden. Diese Datei findet sich in der Regeln im //.m2//-Ordner im Home-Verzeichnis des aktuellen Nutzers. Unter Linux //~/.m2/settings.xml// und unter Windows //%homepath%\.m2\settings.xml//:
18 +Damit das Repository auch beim Bauen mit Maven verwendet wird, sollte folgendes in die Maven-Konfigurationsdatei //settings.xml// geschrieben werden. Diese Datei findet sich in der Regeln im //.m2//-Ordner im Home-Verzeichnis des aktuellen Nutzers. Unter Linux //~~/.m2/settings.xml// und unter Windows //%homepath%\.m2\settings.xml//:
20 20  
21 21  {{panel title="~~~~/.m2/settings.xml" fullwidth="true" initial="hidden" triggerable="true"}}
22 22  {{code language="xml"}}
... ... @@ -27,6 +27,7 @@
27 27   <!-- Add XIMA artifactory -->
28 28   <profiles>
29 29   <profile>
29 + <!-- FORMCYCLE dependencies -->
30 30   <repositories>
31 31   <repository>
32 32   <snapshots>
... ... @@ -33,10 +33,11 @@
33 33   <enabled>false</enabled>
34 34   </snapshots>
35 35   <id>xima</id>
36 - <name>libs-release</name>
36 + <name>fc-plugin-dev</name>
37 37   <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
38 38   </repository>
39 39   </repositories>
40 + <!-- Maven plugins for FORMCYCLE -->
40 40   <pluginRepositories>
41 41   <pluginRepository>
42 42   <snapshots>
... ... @@ -43,7 +43,7 @@
43 43   <enabled>false</enabled>
44 44   </snapshots>
45 45   <id>xima</id>
46 - <name>plugins-release</name>
47 + <name>fc-plugin-dev</name>
47 47   <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
48 48   </pluginRepository>
49 49   </pluginRepositories>
... ... @@ -64,8 +64,20 @@
64 64  {{/code}}
65 65  {{/panel}}
66 66  
67 -In der //pom.xml// des Plugin-Projekts kann die Abhängigkeit dann wie folgt eingebunden werden:
68 +== Maven-Projekteinrichtung
68 68  
70 +Im Folgenden werden einige Punkte beschrieben, die beim Einrichten eines Maven-Projekts für ein {{formcycle/}}-Plugin beachtet werden müssen. Für den schnellen Einstieg gibt auch einige [[Maven-Archetypes>>||anchor="HMaven-Archetypes"]].
71 +
72 +=== Artekfakte und Abhängigkeiten
73 +
74 +{{info}}
75 +Alle Abhängigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren!
76 +{{/info}}
77 +
78 +Ausgangspunkt für die Entwicklung von Plugin ist das Maven-Artefakt //fc-plugin-common//. Dieses enthält die einzelnen Plugin-Schnittstellen und steht auch auf [[unserere Downloadseite zur Verfügung>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common||target="_blank"]].
79 +
80 +In der //pom.xml// des Plugin-Projekts kann diese Abhängigkeit wie folgt eingebunden werden:
81 +
69 69  {{code language="xml"}}
70 70   <properties>
71 71   <xfc.version>7.0.10</xfc.version>
... ... @@ -96,14 +96,164 @@
96 96  
97 97  Ferner ist zu beachten, dass sämtliche Abhängigkeiten zu {{formcycle case="dat"/}} im scope //provided //anzugeben sind. Dies verhindert neben Classpath-Problemen auch das unnötige Anschwellen der Plugin-Größe. Ebenso sollten diesbezüglich Abhängigkeiten auf bereits von {{formcycle case="dat"/}} benutzten und damit bereitstehenden Bibliotheken wiederverwendet werden (z.B. diverse Apache Commons-Implementierungen).
98 98  
99 -{{info}}
100 -Alle Abhangigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren!
101 -{{/info}}
112 +=== Manifest und Fat JAR
102 102  
103 -Basierend auf der hiermit zur Verfügung stehenden Infrastruktur steht der Entwicklung von eigenen Plugin-Implementierungen nichts mehr im Wege. Die Installation erfolgt anschließend je nach Verwendungszweck über die Oberflächen [[Mandant-Plugins>>doc:Formcycle.UserInterface.Client.Plugins]] oder [[System-Plugins>>doc:Formcycle.SystemSettings.UserInterface.SystemPlugins]].
114 +In der //META-INF/MANIFEST.MF// in der Plugin-JAR-Datei sollten folgende Informationen stehen:
104 104  
105 -== Archetypes ==
116 +; formcycle-version-requirement
117 +: Erforderlich. Version von {{formcycle/}}, für die das Plugin gedacht ist.Ist erforderlich, damit {{formcycle/}} bei der Installation die Kompatibilität prüfen kann.
118 +; Implementation-Version
119 +: Erforderlich. Version des Plugins, wird etwa in der Oberfläche angezeigt.
120 +; Build-Time oder Build-Timestamp
121 +: Optional, wird bei SNAPSHOT-Versionen mit angezeigt, um den SNAPSHOT zu identifizieren.
122 +; Implementation-Title
123 +: Optional, wird standardmäßig etwa vom Deploy-Plugin verwendet, um das Plugin zu identifzieren.
106 106  
107 -TODO
125 +Diese Informationen können wie unten beschrieben mittels des //maven-assembly-plugin// in die Manifest-Datei geschrieben werden.
108 108  
109 -Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, [[bieten wir auf unserer Downloadseite>>url:https://customer.formcycle.eu/index.php/s/PgdMrNOvbYEzhmr]]
127 +Weiterhin ist beim Bauen zu beachten, dass eine sogenannte Fat-JAR gebaut werden muss. Abhängigkeiten zu {{formcycle case="dat"/}} sowie anderen Bibliotheken, welche bereits durch {{formcycle case="acc"/}} mitgeliefert werden, sollten wie bereits erwähnt im scope //provided// eingebunden werden. Falls im Plugin aber noch andere Abhängigkeiten benutzt werden, müssen diese in der JAR-Datei inkludiert werden (Fat JAR).
128 +
129 +Dies kann entweder über das [[maven-assembly-plugin>>url:https://maven.apache.org/plugins/maven-assembly-plugin/]] oder das [[maven-shade-plugin>>url:https://maven.apache.org/plugins/maven-shade-plugin/]] erfolgen. Letzteres ist für forgeschrittene Anwendungsfälle gedacht, wenn etwa mehrere Abhängigkeiten die gleichen Dateien mitbringen und zusammengeführt werden müssen.
130 +
131 +Für einfache Plugins ist das //maven-assembly-plugin// ausreichend. Dieses kann in der //pom.xml// wie folgt konfiguriert werden:
132 +
133 +{{panel title="maven-assembly-plugin in pom.xml" fullwidth="true" initial="hidden" triggerable="true"}}
134 +{{code language="java"}}
135 + <properties>
136 + <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
137 + </properties>
138 + <build>
139 + <finalName>${project.artifactId}</finalName>
140 + <plugins>
141 + <plugin>
142 + <groupId>org.apache.maven.plugins</groupId>
143 + <artifactId>maven-assembly-plugin</artifactId>
144 + <version>${maven-assembly-plugin.version}</version>
145 + <executions>
146 + <execution>
147 + <id>fat-jar</id>
148 + <phase>package</phase>
149 + <goals>
150 + <goal>single</goal>
151 + </goals>
152 + <configuration>
153 + <finalName>${project.artifactId}</finalName>
154 + <appendAssemblyId>false</appendAssemblyId>
155 + <descriptorRefs>
156 + <descriptorRef>jar-with-dependencies</descriptorRef>
157 + </descriptorRefs>
158 + <archive>
159 + <manifest>
160 + <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
161 + </manifest>
162 + <manifestEntries>
163 + <formcycle-version-requirement>${xfc-version}</formcycle-version-requirement>
164 + <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
165 + <Implementation-Title>${project.groupId}:${project.artifactId}</Implementation-Title>
166 + <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
167 + <Implementation-Version>${project.version}</Implementation-Version>
168 + </manifestEntries>
169 + </archive>
170 + </configuration>
171 + </execution>
172 + </executions>
173 + </plugin>
174 + </plugins>
175 + </build>
176 +{{/code}}
177 +{{/panel}}
178 +
179 +=== Bauen und Installieren ===
180 +
181 +Der genaue Befehl zum Bauen hängt von den konkreten Einstellungen in der //pom.xml// ab. In der Regel sollte aber folgender Standardbefehl im Plugin-Verzeichnis funktionieren:
182 +
183 +{{code}}
184 + mvn clean install
185 +{{/code}}
186 +
187 +Nachdem das Plugin erfolgreich gebaut wurde, kann die so entstandene JAR-Datei im //target//-Verzeichnis in {{formcycle/}} über die Oberfläche [[Mandant-Plugins>>doc:Formcycle.UserInterface.Client.Plugins]] beziehungsweise [[System-Plugins>>doc:Formcycle.SystemSettings.UserInterface.SystemPlugins]] hochgeladen werden.
188 +
189 +Siehe [[Deploy-Plugin>>||anchor="HDeploy-Plugin"]] zum automatischen Hochladen beim Maven-Build.
190 +
191 +Siehe [[FC-Server-Plugin>>||anchor="HFC-Server-Plugin"]] zum Starten eines einfachen {{formcycle/}}-Servers.
192 +
193 +== Maven-Archetypes ==
194 +
195 +{{figure image="eclipse-archetype.png" width="500"}}
196 + Hinzufügen des Archetypes-Katalogs in Eclipse
197 +{{/figure}}
198 +
199 +{{figure image="eclipse-archetype-select.png" width="500"}}
200 + Auswahl eines Archetypes beim Erstellen eines Maven-Projekts in Eclipse
201 +{{/figure}}
202 +
203 +Für einige häufig verwendete Plugin-Typen stehen [[Maven-Archetypes>>url:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html||target="_blank"]] bereits, um schnell ein Maven-Projekt aufsetzen zu können.
204 +
205 +Voraussetzung für die Verwendung ist, dass in den //~~/.m2/settings.xml// wie oben beschrieben das XIMA-Artifactory eingerichtet wurde. Dann kann etwa über die Kommandozeile wie folgt eine Archetype generiert werden:
206 +
207 +{{code}}
208 +mvn archetype:generate -DarchetypeArtifactId=plugin-archetype-workflow-element-simple -DarchetypeGroupId=de.xima.fc.archetype -DarchetypeVersion=7.0.4
209 +{{/code}}
210 +
211 +Es werden dann einige wenige Informationen wie die gewünschten Maven-Koordinaten des neuen Plugin-Projekts abgefragt und anschließend ein neues vorkonfiguriertes Projekt erstellt.
212 +
213 +Alle vorhandenen Archetypes und deren Versionen können im [[Archetype-Katalog>>url:https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml||target="_blank"]] eingesehen werden.
214 +
215 +In Eclipse kann der Archetype-Katalog in den Einstellungen hinzugefügt werden. Bei der Erstellung eines neuen Maven-Projekt werden dann alle verfügbaren Archetypes angezeigt:
216 +
217 +{{code language="plaintext"}}https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml{{/code}}
218 +
219 +== Deploy-Plugin
220 +
221 +Um beim Entwickeln nicht jedes Mal eine neue Plugin-Version manuell über die Oberfläche hochladen zu müssen, kann das Deploy-Plugin verwendet werden. Dieses besteht aus 2 Teilen:
222 +
223 +* Ein Maven-Plugin, welches nach dem Bauen das Plugin via HTTP an einen laufenden {{formcycle/}}-Server sendet
224 +* Ein Plugin für {{formcycle/}}, welche die Gegenstelle in {{formcycle/}} bereitstellt und das Plugin aus dem HTTP-Request in {{formcycle/}} installiert.
225 +
226 +Weitere Details können im [[Hilfe-Artikel zum Deploy-Plugin>>doc:Formcycle.PluginDocumentation.FormcycleDeployPluginPlugin]] nachgelesen werden. Für die meisten Fälle reicht folgende Konfiguration in der //pom.xml// des Plugin-Projekts aus:
227 +
228 +{{code language="xml"}}
229 + <properties>
230 + <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version/>
231 + <build>
232 + <plugins>
233 + <plugin>
234 + <groupId>de.xima.fc.maven.plugin</groupId>
235 + <artifactId>fc-deploy-plugin-maven-plugin</artifactId>
236 + <version>${fc-deploy-plugin-maven-plugin.version}</version>
237 + <executions>
238 + <execution>
239 + <id>upload</id>
240 + <phase>install</phase>
241 + <goals>
242 + <goal>deploy</goal>
243 + </goals>
244 + </execution>
245 + </executions>
246 + </plugin>
247 + </plugins>
248 + </build>
249 +{{/code}}
250 +
251 +Sofern das Deploy-Plugin bereits in {{formcycle/}} installiert ist, kann das Plugin-Projekt dann beim Bauen wie folgt hochgeladen werden:
252 +
253 +{{code language="bash"}}
254 +mvn clean install -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin
255 +{{/code}}
256 +
257 +Wird Eclipse benutzt, kann auch eine Launch-Configuration mit den //fcDeployUrl// und dem //fcDeployToken// angelegt werden.
258 +
259 +== FC-Server-Plugin ==
260 +
261 +Zum Testen eines Plugins ist es erforderlich, einen laufenden {{formcycle/}}-Server zu haben. Zur Vereinfachung der Entwicklung gibt es das //fc-server-maven-plugin//, welches mittels eines einzigen Befehls ein fertig eingerichtetes {{formcycle/}} lokal startet, wo auch bereits das Deploy-Plugin vorinstalliert ist.
262 +
263 +Sofern wie oben beschrieben in //~~/.m2/settings.xml// die //pluginGroup// hinterlegt wurde, kann in einem beliebiegen Verzeichnis wie folgt ein {{formcycle/}}-Server per Maven gestartet werden:
264 +
265 +{{code language="bash"}}
266 +mvn fc-server:run-ms-war -DxfcVersion=7.0.10
267 +{{/code}}
268 +
269 +Nach kurzer Wartezeit (beim ersten Mal kann es länger dauern) ist dann ein {{formcycle/}}-Server gestartet. Die URL steht am Ende in der Kommandozeile, standardmäßig http://localhost:8080/xima-formcycle
270 +
271 +Dies funktioniert auch in einem Ordner ohne Maven-Projekt. Falls keine {{formcycle/}} angegeben ist, wird eine Standard-Version genommen. Wird der Befehl innerhalb eines Plugin-Maven-Projekts ausgeführt, wird versucht, die Version von {{formcycle/}} aus dem Plugin-Projekt auszulesen.
272 +
pom.xml
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.rth
1 +XWiki.awa
Größe
... ... @@ -1,1 +1,1 @@
1 -2.2 KB
1 +6.1 KB
Inhalt
... ... @@ -2,23 +2,29 @@
2 2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3   <modelVersion>4.0.0</modelVersion>
4 4  
5 + <!-- MUST BE FILLED IN -->
5 5   <groupId></groupId>
6 6   <artifactId></artifactId>
7 7   <version></version>
8 - <packaging>jar</packaging>
9 -
10 10   <name></name>
11 11  
11 + <packaging>jar</packaging>
12 +
12 12   <properties>
13 13   <!-- Configuration -->
14 14   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15 15  
16 16   <!-- Dependencies -->
17 - <xfc-version>7.0.9</xfc-version>
18 + <xfc.version>7.0.10</xfc.version>
19 + <junit-jupiter.version>5.6.0</junit-jupiter.version>
18 18  
19 19   <!-- Plugins -->
20 - <maven-compiler-plugin-version>3.8.1</maven-compiler-plugin-version>
21 - <maven-jar-plugin-version>3.1.0</maven-jar-plugin-version>
22 + <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
23 + <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
24 + <maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
25 + <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
26 + <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version/>
27 + <fc-server-maven-plugin.version>7.0.1</fc-server-maven-plugin.version>
22 22   </properties>
23 23  
24 24   <repositories>
... ... @@ -30,27 +30,72 @@
30 30   </repositories>
31 31  
32 32   <dependencies>
39 + <!-- Reference FORMCYCLE libraries. The plugin is installed in a running -->
40 + <!-- FORMCYCLE system, , so you do not need to include the FORMCYCLE libraries -->
41 + <!-- in the plugin JAR. This is done by setting the scope to "provided" -->
33 33   <dependency>
34 34   <groupId>de.xima.fc</groupId>
35 - <artifactId>fc-plugin-common</artifactId>
36 - <version>${xfc-version}</version>
44 + <artifactId>fc-logic</artifactId>
45 + <version>${xfc.version}</version>
37 37   <scope>provided</scope>
38 38   </dependency>
39 39  
49 + <!-- JUnit for writing unit tests -->
40 40   <dependency>
41 - <groupId>de.xima.fc</groupId>
42 - <artifactId>fc-logic</artifactId>
43 - <version>${xfc-version}</version>
44 - <scope>provided</scope>
51 + <groupId>org.junit.jupiter</groupId>
52 + <artifactId>junit-jupiter</artifactId>
53 + <version>${junit-jupiter.version}</version>
54 + <scope>test</scope>
45 45   </dependency>
56 +
57 + <!-- You can add additional dependencies here. -->
58 + <!-- Some common libraries as apache-commons and guava are provided by -->
59 + <!-- FORMCYCLE and can be set to scope=provided. -->
60 +
46 46   </dependencies>
47 47  
48 48   <build>
64 + <finalName>${project.artifactId}</finalName>
65 +
49 49   <plugins>
67 +
68 + <!-- Upload the plugin to a running FORMCYCLE server as part of the Maven build process -->
69 + <!-- mvn clean install -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin -->
50 50   <plugin>
71 + <groupId>de.xima.fc.maven.plugin</groupId>
72 + <artifactId>fc-deploy-plugin-maven-plugin</artifactId>
73 + <version>${fc-deploy-plugin-maven-plugin.version}</version>
74 + <executions>
75 + <execution>
76 + <id>upload</id>
77 + <phase>install</phase>
78 + <goals>
79 + <goal>deploy</goal>
80 + </goals>
81 + </execution>
82 + </executions>
83 + </plugin>
84 +
85 + <!-- Start a preconfigured FORMCYCLE server-->
86 + <!-- mvn fc-server:run-ms-war -->
87 + <plugin>
88 + <groupId>de.xima.fc.maven.plugin</groupId>
89 + <artifactId>fc-server-maven-plugin</artifactId>
90 + <version>${fc-server-maven-plugin.version}</version>
91 + <configuration>
92 + <bootstrap>
93 + <pluginManagement>
94 + <deployMavenProject>true</deployMavenProject>
95 + </pluginManagement>
96 + </bootstrap>
97 + </configuration>
98 + </plugin>
99 +
100 + <!-- Configure the compilation process. At least Java 11 is required. -->
101 + <plugin>
51 51   <groupId>org.apache.maven.plugins</groupId>
52 52   <artifactId>maven-compiler-plugin</artifactId>
53 - <version>${maven-compiler-plugin-version}</version>
104 + <version>${maven-compiler-plugin.version}</version>
54 54   <configuration>
55 55   <release>11</release>
56 56   <encoding>UTF-8</encoding>
... ... @@ -59,10 +59,11 @@
59 59   </configuration>
60 60   </plugin>
61 61  
113 + <!-- Configure how the JAR is created, including manifest entries -->
62 62   <plugin>
63 63   <groupId>org.apache.maven.plugins</groupId>
64 64   <artifactId>maven-jar-plugin</artifactId>
65 - <version>${maven-jar-plugin-version}</version>
117 + <version>${maven-jar-plugin.version}</version>
66 66   <configuration>
67 67   <archive>
68 68   <manifest>
... ... @@ -69,11 +69,58 @@
69 69   <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
70 70   </manifest>
71 71   <manifestEntries>
72 - <formcycle-version-requirement>${xfc-version}</formcycle-version-requirement>
124 + <formcycle-version-requirement>${xfc.version}</formcycle-version-requirement>
125 + <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
126 + <Implementation-Title>${project.groupId}:${project.artifactId}</Implementation-Title>
127 + <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
128 + <Implementation-Version>${project.version}</Implementation-Version>
73 73   </manifestEntries>
74 74   </archive>
75 75   </configuration>
76 76   </plugin>
133 +
134 + <!-- Build a fat JAR with all dependencies included -->
135 + <plugin>
136 + <groupId>org.apache.maven.plugins</groupId>
137 + <artifactId>maven-assembly-plugin</artifactId>
138 + <version>${maven-assembly-plugin.version}</version>
139 + <executions>
140 + <execution>
141 + <id>fat-jar</id>
142 + <phase>package</phase>
143 + <goals>
144 + <goal>single</goal>
145 + </goals>
146 + <configuration>
147 + <finalName>${project.artifactId}</finalName>
148 + <appendAssemblyId>false</appendAssemblyId>
149 + <descriptorRefs>
150 + <descriptorRef>jar-with-dependencies</descriptorRef>
151 + </descriptorRefs>
152 + <archive>
153 + <manifest>
154 + <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
155 + </manifest>
156 + <manifestEntries>
157 + <formcycle-version-requirement>${xfc.version}</formcycle-version-requirement>
158 + <Build-Timestamp>${maven.build.timestamp}</Build-Timestamp>
159 + <Implementation-Title>${project.groupId}:${project.artifactId}</Implementation-Title>
160 + <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
161 + <Implementation-Version>${project.version}</Implementation-Version>
162 + </manifestEntries>
163 + </archive>
164 + </configuration>
165 + </execution>
166 + </executions>
167 + </plugin>
168 +
169 + <!-- Use JUnit to run test classes -->
170 + <plugin>
171 + <groupId>org.apache.maven.plugins</groupId>
172 + <artifactId>maven-surefire-plugin</artifactId>
173 + <version>${maven-surefire-plugin.version}</version>
174 + </plugin>
77 77   </plugins>
78 78   </build>
79 79  </project>
178 +
eclipse-archetype-select.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.awa
Größe
... ... @@ -1,0 +1,1 @@
1 +66.8 KB
Inhalt
eclipse-archetype.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.awa
Größe
... ... @@ -1,0 +1,1 @@
1 +74.9 KB
Inhalt