source: osm/applications/editors/josm/plugins/pom.xml@ 36312

Last change on this file since 36312 was 36282, checked in by taylor.smock, 7 months ago

Fix #8269: Add initial maven pom files

This additionally deletes most IDE specific configuration, in favor of Maven
configuration.

What this does not do:

  • Convert from ivy to maven for dependency management. This should happen eventually with maven-resolver-ant-tasks (probably with the next dependency update).
  • Deprecate the current ant scripts.
File size: 18.5 KB
Line 
1<?xml version="1.0"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>org.openstreetmap.josm.plugins</groupId>
6 <artifactId>plugin-root</artifactId>
7 <parent>
8 <groupId>org.openstreetmap.josm</groupId>
9 <artifactId>josm-parent</artifactId>
10 <version>1.0-SNAPSHOT</version>
11 <relativePath>../core/nodist/pom.xml</relativePath>
12 </parent>
13
14 <name>JOSM Plugins</name>
15 <url>https://josm.openstreetmap.de</url>
16 <properties>
17 <josm>../../core/dist/josm-custom.jar</josm>
18 <josm.test.build.dir>../../core/test/build</josm.test.build.dir>
19 <java.lang.version>11</java.lang.version>
20 <maven.compiler.release>${java.lang.version}</maven.compiler.release>
21 <plugin.tools.dir>../00_tools</plugin.tools.dir>
22 <plugin.build.dir>build</plugin.build.dir>
23 <plugin.test.dir>test</plugin.test.dir>
24 <plugin.test.data.dir>${plugin.test.dir}/data</plugin.test.data.dir>
25 <plugin.test.src.dir>${plugin.test.dir}/unit</plugin.test.src.dir>
26 <plugin.src.dir>src</plugin.src.dir>
27 <!-- most plugins default to resource directories in root, e.g. ./data, ./images, ./resources -->
28 <plugin.resources.dir>${project.basedir}</plugin.resources.dir>
29 <plugin.doc.dir>javadoc</plugin.doc.dir>
30 <plugin.lib.dir>lib</plugin.lib.dir>
31 <!-- this is the directory where the plugin jar is copied to -->
32 <!-- We specifically don't want to put the new jars in dist just yet, this may change sometime -->
33 <plugin.dist.dir>../../distMaven</plugin.dist.dir>
34 <javadoc.executable>javadoc</javadoc.executable>
35 <manifest>MANIFEST</manifest>
36 <manifest.unixoid>MANIFEST-unixoid</manifest.unixoid>
37 <manifest.windows>MANIFEST-windows</manifest.windows>
38 <manifest.osx>MANIFEST-osx</manifest.osx>
39 <plugin.compile.version>1.0-SNAPSHOT</plugin.compile.version>
40 <plugin.jar>${project.name}.jar</plugin.jar>
41 <plugin.unixoid.jar>${project.name}-unixoid.jar</plugin.unixoid.jar>
42 <plugin.windows.jar>${project.name}-windows.jar</plugin.windows.jar>
43 <plugin.osx.jar>${project.name}-osx.jar</plugin.osx.jar>
44 <plugin.sources.jar>${project.name}-sources.jar</plugin.sources.jar>
45 <plugin.javadoc.jar>${project.name}-javadoc.jar</plugin.javadoc.jar>
46 <jacoco.inclbootstrapclasses>false</jacoco.inclbootstrapclasses>
47 <jacoco.inclnolocationclasses>false</jacoco.inclnolocationclasses>
48 <junit.printsummary>on</junit.printsummary>
49 <sonar.projectKey>JOSM-Plugins</sonar.projectKey>
50 <geotools.version>31.1</geotools.version>
51 </properties>
52 <packaging>pom</packaging>
53 <inceptionYear>2005</inceptionYear>
54 <licenses>
55 <license>
56 <name>GPL-2.0-or-later</name>
57 <url>https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</url>
58 <distribution>repo</distribution>
59 </license>
60 </licenses>
61 <organization>
62 <name>JOSM</name>
63 <url>https://josm.openstreetmap.de</url>
64 </organization>
65 <scm>
66 <connection>scm:svn:https://josm.openstreetmap.de/svn/trunk</connection>
67 <url>https://josm.openstreetmap.de/browser/josm/trunk</url>
68 </scm>
69 <issueManagement>
70 <system>Trac</system>
71 <url>https://josm.openstreetmap.de</url>
72 </issueManagement>
73 <mailingLists>
74 <mailingList>
75 <name>josm-dev</name>
76 <archive>https://lists.openstreetmap.org/pipermail/josm-dev/</archive>
77 <post>josm-dev@openstreetmap.org</post>
78 </mailingList>
79 </mailingLists>
80 <modules>
81 <module>../core/nodist/pom.xml</module>
82 <module>addrinterpolation</module>
83 <module>alignways</module>
84 <module>apache-commons</module>
85 <module>apache-http</module>
86 <module>buildings_tools</module>
87 <module>cadastre-fr</module>
88 <module>canvec_helper</module>
89 <module>colorscheme</module>
90 <module>ColumbusCSV</module>
91 <module>comfort0</module>
92 <module>CommandLine</module>
93 <module>Create_grid_of_ways</module>
94 <module>CustomizePublicTransportStop</module>
95 <module>dataimport</module>
96 <module>DirectDownload</module>
97 <module>DirectUpload</module>
98 <module>editgpx</module>
99 <module>ElevationProfile</module>
100 <module>epci-fr</module>
101 <module>eventbus</module>
102 <module>ext_tools</module>
103 <module>FastDraw</module>
104 <module>FixAddresses</module>
105 <module>flatlaf</module>
106 <module>geochat</module>
107 <module>geotools</module>
108 <module>globalsat</module>
109 <module>gpsblam</module>
110 <module>graphview</module>
111 <module>HouseNumberTaggingTool</module>
112 <module>http2</module>
113 <module>ejml</module>
114 <module>imagery-xml-bounds</module>
115 <module>imagery_cachexport</module>
116 <module>imagery_offset_db</module>
117 <module>imagewaypoint</module>
118 <module>ImportImagePlugin</module>
119 <module>importvec</module>
120 <module>indoor_sweepline</module>
121 <module>infomode</module>
122 <module>jackson</module>
123 <module>jaxb</module>
124 <module>javafx</module>
125 <module>jna</module>
126 <module>jts</module>
127 <module>junctionchecking</module>
128 <module>lwjgl/modules</module>
129 <module>livegps</module>
130 <module>log4j</module>
131 <module>measurement</module>
132 <module>merge-overlap</module>
133 <module>michigan_left</module>
134 <module>namemanager</module>
135 <module>NanoLog</module>
136 <module>native-password-manager</module>
137 <module>o5m</module>
138 <module>opendata/modules</module>
139 <module>OpeningHoursEditor</module>
140 <module>openvisible</module>
141 <module>OsmInspectorPlugin</module>
142 <module>pbf</module>
143 <module>pdfimport</module>
144 <module>photo_geotagging</module>
145 <module>photoadjust</module>
146 <module>pointInfo</module>
147 <module>poly</module>
148 <module>print</module>
149 <module>public_transport</module>
150 <module>rasterfilters</module>
151 <module>reltoolbox</module>
152 <module>reverter</module>
153 <module>roadsigns</module>
154 <module>routes</module>
155 <module>routing</module>
156 <module>SaudiNationalAddress</module>
157 <module>sds</module>
158 <module>seachart</module>
159 <module>seachartedit</module>
160 <module>simplifyarea</module>
161 <module>smed</module>
162 <module>splinex</module>
163 <module>sumoconvert</module>
164 <module>surveyor</module>
165 <module>tageditor</module>
166 <module>tagging-preset-tester</module>
167 <module>terracer</module>
168 <module>touchscreenhelper</module>
169 <module>tracer</module>
170 <module>tracer2</module>
171 <module>trustosm</module>
172 <module>turnlanes</module>
173 <module>turnrestrictions</module>
174 <module>undelete</module>
175 <module>utilsplugin2</module>
176 <module>waydownloader</module>
177 <module>waypoint_search</module>
178 <module>wms-turbo-challenge2</module>
179 </modules>
180 <dependencies>
181 <dependency>
182 <groupId>org.openstreetmap.josm</groupId>
183 <artifactId>josm</artifactId>
184 <version>${plugin.compile.version}</version>
185 <scope>provided</scope>
186 </dependency>
187 <dependency>
188 <groupId>org.openstreetmap.josm</groupId>
189 <artifactId>josm-unittest</artifactId>
190 </dependency>
191 </dependencies>
192 <dependencyManagement>
193 <dependencies>
194 <dependency>
195 <groupId>org.openstreetmap.josm</groupId>
196 <artifactId>josm-unittest</artifactId>
197 <version>1.0-SNAPSHOT</version>
198 <scope>test</scope>
199 </dependency>
200 </dependencies>
201 </dependencyManagement>
202 <build>
203 <sourceDirectory>${plugin.src.dir}</sourceDirectory>
204 <testSourceDirectory>${plugin.test.src.dir}</testSourceDirectory>
205 <resources>
206 <resource>
207 <directory>${plugin.resources.dir}/data</directory>
208 <targetPath>data</targetPath>
209 </resource>
210 <resource>
211 <directory>${plugin.resources.dir}/images</directory>
212 <targetPath>images</targetPath>
213 </resource>
214 <resource>
215 <directory>${plugin.resources.dir}/resources</directory>
216 <targetPath>resources</targetPath>
217 </resource>
218 </resources>
219 <testResources>
220 <testResource>
221 <directory>${plugin.test.data.dir}</directory>
222 </testResource>
223 </testResources>
224 <plugins>
225 <plugin>
226 <groupId>org.apache.maven.plugins</groupId>
227 <artifactId>maven-shade-plugin</artifactId>
228 </plugin>
229 </plugins>
230 <pluginManagement>
231 <plugins>
232 <!-- Configure checkstyle/pmd/other lint plugins -->
233 <plugin>
234 <groupId>com.github.spotbugs</groupId>
235 <artifactId>spotbugs-maven-plugin</artifactId>
236 <version>4.8.1.0</version>
237 <configuration>
238 <xmlOutput>true</xmlOutput>
239 <spotbugsXmlOutputFilename>spotbugs-josm.xml</spotbugsXmlOutputFilename>
240 <effort>max</effort>
241 <excludeFilterFile>${spotbugs.dir}/josm-filter.xml</excludeFilterFile>
242 <onlyAnalyze>org.openstreetmap.josm.-</onlyAnalyze>
243 <threshold>LOW</threshold>
244 </configuration>
245 <!-- This is commented out until all the current bugs are fixed. TODO uncomment!
246 <executions>
247 <execution>
248 <id>validate</id>
249 <phase>validate</phase>
250 <goals>
251 <goal>check</goal>
252 </goals>
253 </execution>
254 </executions>
255 -->
256 </plugin>
257 <plugin>
258 <groupId>org.apache.maven.plugins</groupId>
259 <artifactId>maven-checkstyle-plugin</artifactId>
260 <version>3.3.1</version>
261 <configuration>
262 <configLocation>${project.basedir}/../checkstyle-config.xml</configLocation>
263 <includeTestSourceDirectory>true</includeTestSourceDirectory>
264 <outputFile>${project.basedir}/checkstyle-josm-${project.name}.xml</outputFile>
265 <!-- checkstyle cannot parse module-info.java yet -->
266 <excludes>module-info.java</excludes>
267 </configuration>
268 <executions>
269 <execution>
270 <id>validate</id>
271 <phase>validate</phase>
272 <goals>
273 <goal>check</goal>
274 </goals>
275 </execution>
276 </executions>
277 </plugin>
278 <!-- Configure the test plugin, specifically enable autodetection of global extensions -->
279 <plugin>
280 <artifactId>maven-surefire-plugin</artifactId>
281 <version>3.2.5</version>
282 <configuration>
283 <skipAfterFailureCount>1</skipAfterFailureCount>
284 <argLine>-javaagent:"${settings.localRepository}"/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar</argLine>
285 <properties>
286 <configurationParameters>
287 file.encoding = UTF-8
288 java.locale.providers = SPI,CLDR
289 junit.jupiter.extensions.autodetection.enabled = true
290 junit.jupiter.execution.parallel.enabled = true
291 </configurationParameters>
292 </properties>
293 <systemPropertyVariables>
294 <josm.home>${plugin.test.dir}/config/josm.home</josm.home>
295 <josm.test.data>${plugin.test.data.dir}</josm.test.data>
296 <java.awt.headless>${test.headless}</java.awt.headless>
297 <glass.platform>Monocle</glass.platform>
298 <monocle.platform>Headless</monocle.platform>
299 <prism.order>sw</prism.order>
300 </systemPropertyVariables>
301 </configuration>
302 </plugin>
303 <!-- the clean plugin is needed since we currently store generated sources in the source directory -->
304 <plugin>
305 <groupId>org.apache.maven.plugins</groupId>
306 <artifactId>maven-clean-plugin</artifactId>
307 <version>3.3.2</version>
308 <configuration>
309 <filesets>
310 <fileset>
311 <directory>${plugin.build.dir}</directory>
312 </fileset>
313 <fileset>
314 <directory>${plugin.dist.dir}</directory>
315 <includes>
316 <include>${plugin.jar}</include>
317 <include>${plugin.unixoid.jar}</include>
318 <include>${plugin.windows.jar}</include>
319 <include>${plugin.osx.jar}</include>
320 <include>${plugin.sources.jar}</include>
321 <include>${plugin.javadoc.jar}</include>
322 </includes>
323 </fileset>
324 <fileset>
325 <directory>${project.basedir}</directory>
326 <includes>
327 <include>checkstyle-josm-${project.name}.xml</include>
328 </includes>
329 </fileset>
330 </filesets>
331 </configuration>
332 </plugin>
333 <plugin>
334 <groupId>com.diffplug.spotless</groupId>
335 <artifactId>spotless-maven-plugin</artifactId>
336 <version>2.43.0</version>
337 <configuration>
338 <java>
339 <eclipse>
340 <version>4.21.0</version>
341 <file>${project.basedir}/../00_core_tools/eclipse/formatter.xml</file>
342 </eclipse>
343 <removeUnusedImports/>
344 <licenseHeader>
345 <content>// License: GPL. For details, see LICENSE file.</content>
346 </licenseHeader>
347 </java>
348 </configuration>
349 <executions>
350 <execution>
351 <goals>
352 <goal>check</goal>
353 </goals>
354 </execution>
355 </executions>
356 </plugin>
357 <!-- Used to merge compile dependencies into jars -->
358 <plugin>
359 <groupId>org.apache.maven.plugins</groupId>
360 <artifactId>maven-shade-plugin</artifactId>
361 <version>3.5.3</version>
362 <executions>
363 <execution>
364 <phase>package</phase>
365 <goals>
366 <goal>shade</goal>
367 </goals>
368 <configuration>
369 <outputDirectory>${plugin.dist.dir}</outputDirectory>
370 <finalName>${project.name}</finalName>
371 </configuration>
372 </execution>
373 </executions>
374 </plugin>
375 <!-- Used to share properties between maven, gradle, and ant, where there is a gradle.properties file -->
376 <plugin>
377 <groupId>org.codehaus.mojo</groupId>
378 <artifactId>properties-maven-plugin</artifactId>
379 <version>1.2.1</version>
380 <executions>
381 <execution>
382 <phase>initialize</phase>
383 <goals>
384 <goal>read-project-properties</goal>
385 </goals>
386 <configuration>
387 <files>
388 <file>gradle.properties</file>
389 </files>
390 </configuration>
391 </execution>
392 </executions>
393 </plugin>
394 <plugin>
395 <groupId>org.apache.maven.plugins</groupId>
396 <artifactId>maven-jar-plugin</artifactId>
397 <configuration>
398 <archive>
399 <manifestEntries>
400 <!-- For full documentation, see https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins#ThemanifestfileforaJOSMplugin -->
401 <Plugin-Mainversion>${plugin.main.version}</Plugin-Mainversion>
402 <Plugin-Version>${project.version}</Plugin-Version>
403 <Plugin-Class>${plugin.class}</Plugin-Class>
404 <Plugin-Description>${plugin.description}</Plugin-Description>
405 <!-- These are optional, but are either added almost all the time or can be auto generated -->
406 <Plugin-Date>${maven.build.timestamp}</Plugin-Date>
407 <Author>${plugin.author}</Author>
408 <!-- These are optional and/or uncommon -->
409 <!-- plugin.platform must be `Windows`, `Osx`, or `Unixoid` -->
410 <!--
411 <Plugin-Platform>${plugin.platform}</Plugin-Platform>
412 <Plugin-Provides>${plugin.provides}</Plugin-Provides>
413 <Plugin-Minimum-Java-Version>${plugin.minimum.java.version}</Plugin-Minimum-Java-Version>
414 <Plugin-Early>${plugin.early}</Plugin-Early>
415 <Plugin-Link>${plugin.link}</Plugin-Link>
416 <Plugin-Icon>${plugin.icon}</Plugin-Icon>
417 <Plugin-Stage>${plugin.stage}</Plugin-Stage>
418 <Plugin-Requires>${plugin.requires}</Plugin-Requires>
419 <Plugin-Canloadatruntime>${plugin.canloadatruntime}</Plugin-Canloadatruntime>
420 <Class-Path>${plugin.classpath}</Class-Path>
421 -->
422 <!-- Additional entries: <xxx>_Plugin-Url (doesn't work well with xml) and <lang>_Plugin_Description -->
423 </manifestEntries>
424 </archive>
425 </configuration>
426 </plugin>
427 <!-- For any jaxb plugins -->
428 <plugin>
429 <groupId>org.codehaus.mojo</groupId>
430 <artifactId>jaxb2-maven-plugin</artifactId>
431 <version>2.5.0</version>
432 </plugin>
433 </plugins>
434 </pluginManagement>
435 </build>
436 <profiles>
437 <profile>
438 <!-- This profile is needed to avoid trying to install a non-jar file -->
439 <id>not-pom-packaging</id>
440 <activation>
441 <property>
442 <name>packaging</name>
443 <value>!pom</value>
444 </property>
445 </activation>
446 <build>
447 <pluginManagement>
448 <plugins>
449 <plugin>
450 <groupId>org.apache.maven.plugins</groupId>
451 <artifactId>maven-install-plugin</artifactId>
452 <version>3.1.1</version>
453 <executions>
454 <execution>
455 <id>dist-install</id>
456 <phase>install</phase>
457 <goals>
458 <goal>install-file</goal>
459 </goals>
460 <configuration>
461 <file>${plugin.dist.dir}/${project.name}.jar</file>
462 <artifactId>${project.artifactId}</artifactId>
463 <groupId>${project.groupId}</groupId>
464 <version>${project.version}</version>
465 <packaging>${project.packaging}</packaging>
466 </configuration>
467 </execution>
468 </executions>
469 </plugin>
470 </plugins>
471 </pluginManagement>
472 </build>
473 </profile>
474 <profile>
475 <id>java-21-plugins</id>
476 <activation>
477 <jdk>[21,]</jdk>
478 </activation>
479 <modules>
480 <module>FIT</module>
481 <module>MicrosoftStreetside</module>
482 </modules>
483 </profile>
484 <profile>
485 <id>java-17-plugins</id>
486 <activation>
487 <jdk>[17,]</jdk>
488 </activation>
489 <modules>
490 <module>imageio</module>
491 <module>pmtiles</module>
492 </modules>
493 </profile>
494 </profiles>
495</project>
Note: See TracBrowser for help on using the repository browser.