1 <?xml version="1.0" encoding="UTF-8"?>
4 This file is part of maven-build-process. It is subject to the license terms in the LICENSE file found in the top-level
5 directory of this distribution and at http://creativecommons.org/publicdomain/zero/1.0/. No part of maven-build-process,
6 including this file, may be copied, modified, propagated, or distributed except according to the terms contained
10 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
11 <modelVersion>4.0.0</modelVersion>
13 <!-- ordering follows https://maven.apache.org/developers/conventions/code.html#POM_Code_Convention -->
15 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
17 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
18 <!-- https://maven.apache.org/pom.html#Inheritance -->
20 <groupId>de.xn--ho-hia.maven.parents</groupId>
21 <artifactId>maven-parents</artifactId>
22 <version>9999.99.99-SNAPSHOT</version>
25 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
27 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
28 <!-- https://maven.apache.org/pom.html#Maven_Coordinates -->
29 <artifactId>maven-parents-java</artifactId>
30 <packaging>pom</packaging>
32 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
34 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
35 <!-- https://maven.apache.org/pom.html#More_Project_Information -->
36 <name>Maven Parents :: Java</name>
37 <description>Base Java parent POM</description>
39 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
41 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
42 <!-- https://maven.apache.org/pom.html#Aggregation -->
44 <module>maven-parents-java-prototype</module>
45 <module>maven-parents-java-stable</module>
48 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
50 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
52 <version.jdk>1.8</version.jdk>
54 <jacoco.lineCoverage>1.00000</jacoco.lineCoverage>
55 <jacoco.skip>false</jacoco.skip>
56 <pit.mutationCoverage>100</pit.mutationCoverage>
57 <pit.threads>8</pit.threads>
58 <pit.skip>false</pit.skip>
59 <pmd.minimumTokens>50</pmd.minimumTokens>
60 <pmd.failurePriority>0</pmd.failurePriority>
61 <pmd.skip>false</pmd.skip>
62 <findbugs.skip>false</findbugs.skip>
63 <findbugs.effort>Max</findbugs.effort>
64 <findbugs.threshold>Low</findbugs.threshold>
65 <failBuildOnDuplicates>true</failBuildOnDuplicates>
66 <failBuildOnDependencyVersionProblem>true</failBuildOnDependencyVersionProblem>
67 <failBuildOnDependencyProblem>true</failBuildOnDependencyProblem>
69 <version.m-pmd-p>3.8</version.m-pmd-p>
70 <version.m-javadoc-p>3.0.0-M1</version.m-javadoc-p>
71 <version.m-dependency-p>2.10</version.m-dependency-p>
72 <version.m-dependency-versions-check-p>2.0.4</version.m-dependency-versions-check-p>
73 <version.m-remote-resources-p>1.5</version.m-remote-resources-p>
74 <version.m-jar-p>3.0.2</version.m-jar-p>
75 <version.m-compiler-p>3.7.0</version.m-compiler-p>
76 <version.m-source-p>3.0.1</version.m-source-p>
77 <version.bnd-m-p>3.5.0</version.bnd-m-p>
78 <version.findbugs-m-p>3.0.5</version.findbugs-m-p>
79 <version.pittest-m-p>1.2.5</version.pittest-m-p>
80 <version.duplicate-finder-m-p>1.2.1</version.duplicate-finder-m-p>
81 <version.jacoco-m-p>0.7.9</version.jacoco-m-p>
82 <version.m-surefire-report-p>2.19.1</version.m-surefire-report-p>
83 <version.dependency-check-m>3.0.2</version.dependency-check-m>
84 <version.m-dependency-p>3.0.2</version.m-dependency-p>
85 <version.flatten-m-p>1.0.1</version.flatten-m-p>
87 <version.tycho-compiler-jdt>1.0.0</version.tycho-compiler-jdt>
90 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
91 <!-- DEPENDENCY MANAGEMENT -->
92 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
93 <!-- https://maven.apache.org/pom.html#Dependency_Management -->
94 <dependencyManagement>
97 <groupId>de.xn--ho-hia.maven.boms</groupId>
98 <artifactId>maven-boms-all</artifactId>
99 <version>9999.99.99-SNAPSHOT</version>
101 <scope>import</scope>
104 </dependencyManagement>
106 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
107 <!-- DEPENDENCIES -->
108 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
109 <!-- https://maven.apache.org/pom.html#Dependencies -->
112 <groupId>org.eclipse.jdt</groupId>
113 <artifactId>org.eclipse.jdt.annotation</artifactId>
116 <groupId>junit</groupId>
117 <artifactId>junit</artifactId>
122 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
124 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
125 <!-- https://maven.apache.org/pom.html#Build -->
130 <!-- https://maven.apache.org/plugins/maven-source-plugin/ -->
131 <groupId>org.apache.maven.plugins</groupId>
132 <artifactId>maven-source-plugin</artifactId>
133 <version>${version.m-source-p}</version>
135 <!-- https://maven.apache.org/plugins/maven-source-plugin/jar-no-fork-mojo.html#archive -->
137 <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
142 <id>attach-sources</id>
143 <phase>verify</phase>
145 <!-- https://maven.apache.org/plugins/maven-source-plugin/jar-no-fork-mojo.html -->
146 <goal>jar-no-fork</goal>
153 <!-- https://maven.apache.org/plugins/maven-javadoc-plugin/ -->
154 <groupId>org.apache.maven.plugins</groupId>
155 <artifactId>maven-javadoc-plugin</artifactId>
156 <version>${version.m-javadoc-p}</version>
158 <!-- https://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html#archive -->
160 <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
165 <id>attach-javadocs</id>
167 <!-- https://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html -->
175 <!-- https://github.com/bndtools/bnd/blob/master/maven/bnd-maven-plugin/README.md -->
176 <groupId>biz.aQute.bnd</groupId>
177 <artifactId>bnd-maven-plugin</artifactId>
178 <version>${version.bnd-m-p}</version>
182 <goal>bnd-process</goal>
189 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/ -->
190 <groupId>org.apache.maven.plugins</groupId>
191 <artifactId>maven-compiler-plugin</artifactId>
192 <version>${version.m-compiler-p}</version>
194 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#source -->
195 <source>${version.jdk}</source>
196 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target -->
197 <target>${version.jdk}</target>
198 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#compilerId -->
199 <compilerId>jdt</compilerId>
200 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#compilerArguments -->
202 <!-- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javac.html -->
204 <!-- https://wiki.eclipse.org/Tycho/FAQ#How_to_configure_warning.2Ferror_settings_of_the_OSGi_compiler.3F -->
205 <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
209 <!-- This dependency provides the implementation of compiler "jdt" -->
211 <!-- https://eclipse.org/tycho/sitedocs/ -->
212 <groupId>org.eclipse.tycho</groupId>
213 <artifactId>tycho-compiler-jdt</artifactId>
214 <version>${version.tycho-compiler-jdt}</version>
220 <!-- https://maven.apache.org/plugins/maven-jar-plugin/ -->
221 <groupId>org.apache.maven.plugins</groupId>
222 <artifactId>maven-jar-plugin</artifactId>
223 <version>${version.m-jar-p}</version>
225 <!-- https://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html#archive -->
227 <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
233 <!-- http://gleclaire.github.io/findbugs-maven-plugin/ -->
234 <groupId>org.codehaus.mojo</groupId>
235 <artifactId>findbugs-maven-plugin</artifactId>
236 <version>${version.findbugs-m-p}</version>
238 <!-- http://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html#effort -->
239 <effort>${findbugs.effort}</effort>
240 <!-- http://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html#threshold -->
241 <threshold>${findbugs.threshold}</threshold>
242 <!-- http://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html#skip -->
243 <skip>${findbugs.skip}</skip>
248 <!-- http://gleclaire.github.io/findbugs-maven-plugin/check-mojo.html -->
256 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/ -->
257 <groupId>org.apache.maven.plugins</groupId>
258 <artifactId>maven-pmd-plugin</artifactId>
259 <version>${version.m-pmd-p}</version>
261 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/check-mojo.html#failurePriority -->
262 <failurePriority>${pmd.failurePriority}</failurePriority>
263 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/cpd-mojo.html#minimumTokens -->
264 <minimumTokens>${pmd.minimumTokens}</minimumTokens>
265 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/pmd-mojo.html#targetJdk -->
266 <targetJdk>${version.jdk}</targetJdk>
267 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/check-mojo.html#skip -->
268 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/cpd-check-mojo.html#skip -->
269 <skip>${pmd.skip}</skip>
274 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/check-mojo.html -->
276 <!-- https://maven.apache.org/plugins/maven-pmd-plugin/cpd-check-mojo.html -->
277 <goal>cpd-check</goal>
284 <!-- http://eclemma.org/jacoco/trunk/doc/maven.html -->
285 <groupId>org.jacoco</groupId>
286 <artifactId>jacoco-maven-plugin</artifactId>
287 <version>${version.jacoco-m-p}</version>
289 <skip>${jacoco.skip}</skip>
293 <id>prepare-coverage-agent</id>
295 <!-- http://eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html -->
296 <goal>prepare-agent</goal>
300 <id>check-coverage</id>
302 <!-- http://eclemma.org/jacoco/trunk/doc/check-mojo.html -->
306 <!-- http://eclemma.org/jacoco/trunk/doc/check-mojo.html#rules -->
309 <element>CLASS</element>
311 <exclude>*Test</exclude>
315 <counter>LINE</counter>
316 <value>COVEREDRATIO</value>
317 <minimum>${jacoco.lineCoverage}</minimum>
328 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/ -->
329 <groupId>org.apache.maven.plugins</groupId>
330 <artifactId>maven-remote-resources-plugin</artifactId>
331 <version>${version.m-remote-resources-p}</version>
334 <id>jdt-settings</id>
336 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html -->
340 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html#attachToMain -->
341 <attachToMain>false</attachToMain>
342 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html#attachToTest -->
343 <attachToTest>false</attachToTest>
344 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html#resourceBundles -->
346 <resourceBundle>com.github.sebhoss:jdt-settings:2.0.0</resourceBundle>
348 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/process-mojo.html#outputDirectory -->
349 <outputDirectory>${project.basedir}/.settings</outputDirectory>
356 <!-- https://github.com/basepom/duplicate-finder-maven-plugin -->
357 <groupId>org.basepom.maven</groupId>
358 <artifactId>duplicate-finder-maven-plugin</artifactId>
359 <version>${version.duplicate-finder-m-p}</version>
362 <phase>verify</phase>
369 <!-- https://github.com/basepom/duplicate-finder-maven-plugin/wiki#configuration-overview -->
370 <ignoredResourcePatterns>
371 <ignoredResourcePattern>.*\.html</ignoredResourcePattern>
372 </ignoredResourcePatterns>
373 <failBuildInCaseOfConflict>${failBuildOnDuplicates}</failBuildInCaseOfConflict>
378 <!-- http://pitest.org/quickstart/maven/ -->
379 <groupId>org.pitest</groupId>
380 <artifactId>pitest-maven</artifactId>
381 <version>${version.pittest-m-p}</version>
383 <!-- http://pitest.org/quickstart/maven/#threads -->
384 <threads>${pit.threads}</threads>
385 <!-- http://pitest.org/quickstart/maven/#mutationthreshold -->
386 <mutationThreshold>${pit.mutationCoverage}</mutationThreshold>
387 <!-- http://pitest.org/quickstart/maven/#skip -->
388 <skip>${pit.skip}</skip>
389 <!-- http://pitest.org/quickstart/maven/#targetclasses -->
391 <param>de.xn__ho_hia*</param>
393 <!-- http://pitest.org/quickstart/maven/#targettests -->
395 <param>de.xn__ho_hia*</param>
398 <outputFormat>XML</outputFormat>
399 <outputFormat>HTML</outputFormat>
405 <!-- http://pitest.org/quickstart/maven/#mutationcoverage-goal -->
406 <goal>mutationCoverage</goal>
408 <phase>verify</phase>
414 <!-- https://jeremylong.github.io/DependencyCheck/dependency-check-maven/index.html -->
415 <groupId>org.owasp</groupId>
416 <artifactId>dependency-check-maven</artifactId>
417 <version>${version.dependency-check-m}</version>
428 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/ -->
429 <groupId>org.apache.maven.plugins</groupId>
430 <artifactId>maven-dependency-plugin</artifactId>
431 <version>${version.m-dependency-p}</version>
435 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-only-mojo.html -->
436 <goal>analyze-only</goal>
437 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-duplicate-mojo.html -->
438 <goal>analyze-duplicate</goal>
439 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-dep-mgt-mojo.html -->
440 <goal>analyze-dep-mgt</goal>
445 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html#failOnWarning -->
446 <failOnWarning>${failBuildOnDependencyProblem}</failOnWarning>
447 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-only-mojo.html#usedDependencies -->
450 Ignore Eclipse JDT annotations because @NonNull, etc are not retained
451 in byte code. Therefore the plugin detects a false positive.
453 <usedDependency>org.eclipse.jdt:org.eclipse.jdt.annotation</usedDependency>
455 <!-- https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html#ignoredDependencies -->
456 <ignoredDependencies>
457 <ignoredDependency>com.github.sebhoss:suppress-warnings</ignoredDependency>
458 </ignoredDependencies>
463 <!-- https://github.com/ning/maven-dependency-versions-check-plugin -->
464 <groupId>com.ning.maven.plugins</groupId>
465 <artifactId>maven-dependency-versions-check-plugin</artifactId>
466 <version>${version.m-dependency-versions-check-p}</version>
469 <phase>verify</phase>
478 <!-- http://www.mojohaus.org/flatten-maven-plugin/ -->
479 <groupId>org.codehaus.mojo</groupId>
480 <artifactId>flatten-maven-plugin</artifactId>
481 <version>${version.flatten-m-p}</version>
483 <flattenMode>oss</flattenMode>
487 <!-- enable flattening -->
489 <phase>process-resources</phase>
491 <!-- http://www.mojohaus.org/flatten-maven-plugin/flatten-mojo.html -->
496 <!-- ensure proper cleanup -->
497 <id>flatten.clean</id>
500 <!-- http://www.mojohaus.org/flatten-maven-plugin/clean-mojo.html -->
509 <!-- https://maven.apache.org/pom.html#Plugins -->
512 <!-- https://maven.apache.org/plugins/maven-remote-resources-plugin/ -->
513 <groupId>org.apache.maven.plugins</groupId>
514 <artifactId>maven-remote-resources-plugin</artifactId>
517 <!-- https://maven.apache.org/plugins/maven-compiler-plugin/ -->
518 <groupId>org.apache.maven.plugins</groupId>
519 <artifactId>maven-compiler-plugin</artifactId>
522 <!-- https://github.com/bndtools/bnd/blob/master/maven/bnd-maven-plugin/README.md -->
523 <groupId>biz.aQute.bnd</groupId>
524 <artifactId>bnd-maven-plugin</artifactId>
527 <!-- https://maven.apache.org/plugins/maven-jar-plugin/ -->
528 <groupId>org.apache.maven.plugins</groupId>
529 <artifactId>maven-jar-plugin</artifactId>
534 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
536 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
537 <!-- https://maven.apache.org/pom.html#Profiles -->
544 <!-- https://maven.apache.org/plugins/maven-source-plugin/ -->
545 <groupId>org.apache.maven.plugins</groupId>
546 <artifactId>maven-source-plugin</artifactId>
549 <!-- https://maven.apache.org/plugins/maven-javadoc-plugin/ -->
550 <groupId>org.apache.maven.plugins</groupId>
551 <artifactId>maven-javadoc-plugin</artifactId>
554 <!-- http://kohsuke.org/pgp-maven-plugin/ -->
555 <groupId>org.kohsuke</groupId>
556 <artifactId>pgp-maven-plugin</artifactId>