Revert "Preparing release."
[commons-rng.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Licensed to the Apache Software Foundation (ASF) under one or more
4 contributor license agreements. See the NOTICE file distributed with
5 this work for additional information regarding copyright ownership.
6 The ASF licenses this file to You under the Apache License, Version 2.0
7 (the "License"); you may not use this file except in compliance with
8 the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 -->
18 <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/maven-v4_0_0.xsd">
19 <parent>
20 <groupId>org.apache.commons</groupId>
21 <artifactId>commons-parent</artifactId>
22 <version>45</version>
23 </parent>
24
25 <modelVersion>4.0.0</modelVersion>
26 <groupId>org.apache.commons</groupId>
27 <artifactId>commons-rng-parent</artifactId>
28 <packaging>pom</packaging>
29 <version>1.1-SNAPSHOT</version>
30 <name>Apache Commons RNG</name>
31
32 <inceptionYear>2016</inceptionYear>
33 <description>The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.</description>
34 <url>http://commons.apache.org/proper/commons-rng/</url>
35
36 <issueManagement>
37 <system>jira</system>
38 <url>http://issues.apache.org/jira/browse/RNG</url>
39 </issueManagement>
40
41 <scm>
42 <connection>scm:git:http://git-wip-us.apache.org/repos/asf/commons-rng.git</connection>
43 <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/commons-rng.git</developerConnection>
44 <url>https://git-wip-us.apache.org/repos/asf?p=commons-rng.git</url>
45 </scm>
46
47 <distributionManagement>
48 <site>
49 <id>apache.website</id>
50 <name>Apache Commons Site</name>
51 <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng/</url>
52 </site>
53 </distributionManagement>
54
55 <developers>
56 <developer>
57 <name>Gilles Sadowski</name>
58 <id>erans</id>
59 <email>erans at apache dot org</email>
60 </developer>
61 </developers>
62
63 <contributors>
64 <contributor>
65 <name>Artem Barger</name>
66 </contributor>
67 <contributor>
68 <name>Rob Tompkins</name>
69 </contributor>
70 </contributors>
71
72 <dependencies>
73 <dependency>
74 <groupId>junit</groupId>
75 <artifactId>junit</artifactId>
76 <version>4.12</version>
77 <scope>test</scope>
78 </dependency>
79 </dependencies>
80
81 <properties>
82 <!-- Do not change: "rng" is the name of the component even if the
83 name of the base package evolves with major release numbers
84 (see "commons.osgi.symbolicName", below). -->
85 <commons.componentid>rng</commons.componentid>
86 <!-- OSGi -->
87 <commons.osgi.symbolicName>org.apache.commons.rng.parent</commons.osgi.symbolicName>
88 <commons.osgi.export>org.apache.commons.rng.parent</commons.osgi.export>
89 <!-- Java 9+ -->
90 <commons.automatic.module.name>org.apache.commons.rng.parent</commons.automatic.module.name>
91 <!-- do not use snapshot suffix here -->
92 <commons.release.version>1.0</commons.release.version>
93 <commons.release.desc>(requires Java 6+)</commons.release.desc>
94 <!-- <commons.rc.version>RC1</commons.rc.version> -->
95 <commons.binary.suffix>-bin</commons.binary.suffix>
96
97 <commons.jira.id>RNG</commons.jira.id>
98 <commons.jira.pid>12320623</commons.jira.pid>
99 <commons.encoding>UTF-8</commons.encoding>
100 <maven.compiler.source>1.6</maven.compiler.source>
101 <maven.compiler.target>1.6</maven.compiler.target>
102 <rng.pmd.version>3.9.0</rng.pmd.version>
103 <rng.spotbugs.version>3.1.1</rng.spotbugs.version>
104 <rng.checkstyle.version>3.0.0</rng.checkstyle.version>
105 <rng.clirr.version>2.8</rng.clirr.version>
106 <rng.mathjax.version>2.7.2</rng.mathjax.version>
107 <!-- Workaround to avoid duplicating config files. -->
108 <rng.parent.dir>${basedir}</rng.parent.dir>
109
110 <!-- Temporary fix to support Java 8 -->
111 <commons.jacoco.version>0.8.0</commons.jacoco.version>
112 <commons.jacoco.classRatio>0.96</commons.jacoco.classRatio>
113 <commons.jacoco.instructionRatio>0.8</commons.jacoco.instructionRatio>
114 <commons.jacoco.methodRatio>0.8</commons.jacoco.methodRatio>
115 <commons.jacoco.branchRatio>0.8</commons.jacoco.branchRatio>
116 <commons.jacoco.complexityRatio>0.8</commons.jacoco.complexityRatio>
117 <commons.jacoco.lineRatio>0.85</commons.jacoco.lineRatio>
118 <commons.jacoco.haltOnFailure>false</commons.jacoco.haltOnFailure>
119
120 <commons.site.path>rng</commons.site.path>
121 <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng</commons.scmPubUrl>
122 <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory>
123
124 <!-- Temporary fix to replace svn-based build number with git-based build number -->
125 <buildnumber.skip>true</buildnumber.skip>
126 <rng.jgit.buildnumber.version>1.2.10</rng.jgit.buildnumber.version>
127 <implementation.build>${git.revision}; ${maven.build.timestamp}</implementation.build>
128
129 <!-- Override default buildNumber timestamp format, needed for coveralls plugin -->
130 <maven.buildNumber.timestampFormat>{0,date,yyyy-MM-dd HH:mm:ssZ}</maven.buildNumber.timestampFormat>
131
132 <!--
133 Override so that "mvn commons:download-page" will generates a web page
134 referring to the files created by the "dist-archive" module.
135 Temporary workaround?
136 -->
137 <commons.release.name>commons-rng-${project.version}</commons.release.name>
138 <!-- Java8+ requires additional Javadoc qualifier for MathJax (default to empty). -->
139 <allowscript.javadoc.qualifier></allowscript.javadoc.qualifier>
140 <!-- Invalid flag for old javadoc versions (default to empty). -->
141 <doclint.javadoc.qualifier></doclint.javadoc.qualifier>
142 </properties>
143
144 <build>
145 <plugins>
146 <plugin>
147 <groupId>org.apache.maven.plugins</groupId>
148 <artifactId>maven-jar-plugin</artifactId>
149 <configuration>
150 <archive combine.children="append">
151 <manifestEntries>
152 <!-- Java 9 -->
153 <Automatic-Module-Name>${commons.automatic.module.name}</Automatic-Module-Name>
154 </manifestEntries>
155 </archive>
156 </configuration>
157 </plugin>
158
159 <plugin>
160 <groupId>org.apache.maven.plugins</groupId>
161 <artifactId>maven-compiler-plugin</artifactId>
162 <configuration>
163 <compilerArgs>
164 <!-- <arg>-verbose</arg> -->
165 <arg>-Xlint:all,-options,-path</arg>
166 </compilerArgs>
167 </configuration>
168 </plugin>
169
170 <plugin>
171 <groupId>org.apache.maven.plugins</groupId>
172 <artifactId>maven-surefire-plugin</artifactId>
173 <configuration>
174 <includes>
175 <include>**/*Test.java</include>
176 </includes>
177 <excludes>
178 <exclude>**/*AbstractTest.java</exclude>
179 </excludes>
180 </configuration>
181 </plugin>
182 <plugin>
183 <artifactId>maven-assembly-plugin</artifactId>
184 <configuration>
185 <descriptors>
186 <descriptor>src/assembly/src.xml</descriptor>
187 <descriptor>src/assembly/bin.xml</descriptor>
188 </descriptors>
189 <!-- There are a lot of long file names. Suppress the warnings. -->
190 <tarLongFileMode>gnu</tarLongFileMode>
191 </configuration>
192 </plugin>
193 <plugin>
194 <groupId>org.apache.maven.plugins</groupId>
195 <artifactId>maven-scm-publish-plugin</artifactId>
196 <configuration>
197 <ignorePathsToDelete>
198 <ignorePathToDelete>javadocs</ignorePathToDelete>
199 </ignorePathsToDelete>
200 </configuration>
201 </plugin>
202
203 <plugin>
204 <groupId>org.apache.maven.plugins</groupId>
205 <artifactId>maven-checkstyle-plugin</artifactId>
206 <executions>
207 <execution>
208 <id>validate</id>
209 <phase>validate</phase>
210 <goals>
211 <goal>check</goal>
212 </goals>
213 </execution>
214 </executions>
215 </plugin>
216 <plugin>
217 <groupId>com.github.spotbugs</groupId>
218 <artifactId>spotbugs-maven-plugin</artifactId>
219 <version>${rng.spotbugs.version}</version>
220 </plugin>
221 <plugin>
222 <groupId>org.apache.rat</groupId>
223 <artifactId>apache-rat-plugin</artifactId>
224 <version>${commons.rat.version}</version>
225 <configuration>
226 <!--
227 Needed for command-line access, e.g mvn apache-rat:rat and mvn apache-rat:check
228 Below should agree with config in <reporting> section, so the site
229 gets consistent output.
230 -->
231 <excludes combine.children="append">
232 <!-- version 0.8 of apache-rat-plugin does not exclude properly
233 some default development tools files (see RAT-126) -->
234 <exclude>.ekstazi/**</exclude>
235 <exclude>src/site/resources/txt/userguide/stress/dh/**</exclude>
236 <exclude>src/site/resources/txt/userguide/stress/tu/**</exclude>
237 <exclude>dist-archive/**</exclude>
238 </excludes>
239 </configuration>
240 </plugin>
241
242 <plugin>
243 <!-- NOTE: javadoc config must also be set under <reporting> -->
244 <groupId>org.apache.maven.plugins</groupId>
245 <artifactId>maven-javadoc-plugin</artifactId>
246 <configuration>
247 <!-- Enable MathJax -->
248 <additionalparam>${doclint.javadoc.qualifier} ${allowscript.javadoc.qualifier} -header '&lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/${rng.mathjax.version}/MathJax.js?config=TeX-AMS-MML_HTMLorMML"&gt;&lt;/script&gt;'</additionalparam>
249 <!-- <aggregate>true</aggregate> -->
250 </configuration>
251 </plugin>
252 </plugins>
253
254 <pluginManagement>
255 <plugins>
256 <plugin>
257 <groupId>org.apache.maven.plugins</groupId>
258 <artifactId>maven-checkstyle-plugin</artifactId>
259 <version>${rng.checkstyle.version}</version>
260 <configuration>
261 <includeTestSourceDirectory>false</includeTestSourceDirectory>
262 <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
263 <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
264 <logViolationsToConsole>false</logViolationsToConsole>
265 <failOnViolation>false</failOnViolation>
266 <resourceExcludes>NOTICE.txt,LICENSE.txt</resourceExcludes>
267 <excludes>**/module-info.java</excludes>
268 </configuration>
269 </plugin>
270 </plugins>
271 </pluginManagement>
272 </build>
273
274 <reporting>
275 <plugins>
276 <plugin>
277 <groupId>org.apache.rat</groupId>
278 <artifactId>apache-rat-plugin</artifactId>
279 <version>${commons.rat.version}</version>
280 <configuration>
281 <!-- Should agree with apache-rat-plugin config under <build> -->
282 <excludes combine.children="append">
283 <!-- version 0.8 of apache-rat-plugin does not exclude properly
284 some default development tools files (see RAT-126) -->
285 <exclude>.ekstazi/**</exclude>
286 <exclude>src/site/resources/txt/userguide/stress/dh/**</exclude>
287 <exclude>src/site/resources/txt/userguide/stress/tu/**</exclude>
288 <exclude>dist-archive/**</exclude>
289 </excludes>
290 </configuration>
291 </plugin>
292 <plugin>
293 <groupId>org.apache.maven.plugins</groupId>
294 <artifactId>maven-changes-plugin</artifactId>
295 <version>${commons.changes.version}</version>
296 <configuration>
297 <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
298 <columnNames>Fix Version,Key,Component,Summary,Type,Resolution,Status</columnNames>
299 <!-- Sort cols in natural order when using JQL for JIRA 5.1 -->
300 <sortColumnNames>Fix Version DESC,Type,Key DESC</sortColumnNames>
301 <resolutionIds>Fixed</resolutionIds>
302 <statusIds>Resolved,Closed</statusIds>
303 <!-- Don't include sub-task -->
304 <typeIds>Bug,New Feature,Task,Improvement,Wish,Test</typeIds>
305 <!-- For JIRA >= 5.1 -->
306 <useJql>true</useJql>
307 <onlyCurrentVersion>${commons.changes.onlyCurrentVersion}</onlyCurrentVersion>
308 <maxEntries>${commons.changes.maxEntries}</maxEntries>
309 <runOnlyAtExecutionRoot>${commons.changes.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
310 </configuration>
311 <reportSets>
312 <reportSet>
313 <reports>
314 <report>changes-report</report>
315 <report>jira-report</report>
316 </reports>
317 </reportSet>
318 </reportSets>
319 </plugin>
320 <plugin>
321 <groupId>com.github.spotbugs</groupId>
322 <artifactId>spotbugs-maven-plugin</artifactId>
323 <version>${rng.spotbugs.version}</version>
324 <configuration>
325 <threshold>Normal</threshold>
326 <effort>Default</effort>
327 <excludeFilterFile>${rng.parent.dir}/src/main/resources/spotbugs/spotbugs-exclude-filter.xml</excludeFilterFile>
328 </configuration>
329 </plugin>
330 <plugin>
331 <groupId>org.apache.maven.plugins</groupId>
332 <artifactId>maven-checkstyle-plugin</artifactId>
333 <version>${rng.checkstyle.version}</version>
334 <configuration>
335 <configLocation>${rng.parent.dir}/src/main/resources/checkstyle/checkstyle.xml</configLocation>
336 <headerLocation>${rng.parent.dir}/src/main/resources/checkstyle/license-header.txt</headerLocation>
337 <enableRulesSummary>false</enableRulesSummary>
338 <includeResources>false</includeResources>
339 <excludes>**/module-info.java</excludes>
340 </configuration>
341 <reportSets>
342 <reportSet>
343 <reports>
344 <report>checkstyle</report>
345 </reports>
346 </reportSet>
347 </reportSets>
348 </plugin>
349 <plugin>
350 <groupId>org.codehaus.mojo</groupId>
351 <artifactId>clirr-maven-plugin</artifactId>
352 <version>${rng.clirr.version}</version>
353 <configuration>
354 <minSeverity>${minSeverity}</minSeverity>
355 <ignoredDifferencesFile>${rng.parent.dir}/src/main/resources/clirr/clirr-ignored.xml</ignoredDifferencesFile>
356 </configuration>
357 </plugin>
358 <plugin>
359 <artifactId>maven-pmd-plugin</artifactId>
360 <version>${rng.pmd.version}</version>
361 <configuration>
362 <targetJdk>${maven.compiler.target}</targetJdk>
363 <skipEmptyReport>false</skipEmptyReport>
364 <analysisCache>true</analysisCache>
365 <rulesets>
366 <ruleset>${rng.parent.dir}/src/main/resources/pmd/pmd-ruleset.xml</ruleset>
367 </rulesets>
368 </configuration>
369 <reportSets>
370 <reportSet>
371 <reports>
372 <report>pmd</report>
373 <report>cpd</report>
374 </reports>
375 </reportSet>
376 </reportSets>
377 </plugin>
378 <plugin>
379 <!-- NOTE: javadoc config must also be set under <build> -->
380 <groupId>org.apache.maven.plugins</groupId>
381 <artifactId>maven-javadoc-plugin</artifactId>
382 <configuration>
383 <!-- Enable MathJax -->
384 <additionalparam>${doclint.javadoc.qualifier} ${allowscript.javadoc.qualifier} -header '&lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/${rng.mathjax.version}/MathJax.js?config=TeX-AMS-MML_HTMLorMML"&gt;&lt;/script&gt;'</additionalparam>
385 <!-- <aggregate>true</aggregate> -->
386 </configuration>
387 </plugin>
388 </plugins>
389 </reporting>
390
391 <profiles>
392 <profile>
393 <id>jgit-buildnumber</id>
394 <activation>
395 <file>
396 <exists>.git</exists>
397 </file>
398 </activation>
399 <build>
400 <plugins>
401 <plugin>
402 <groupId>ru.concerteza.buildnumber</groupId>
403 <artifactId>maven-jgit-buildnumber-plugin</artifactId>
404 <version>${rng.jgit.buildnumber.version}</version>
405 <executions>
406 <execution>
407 <phase>generate-resources</phase>
408 <goals>
409 <goal>extract-buildnumber</goal>
410 </goals>
411 </execution>
412 </executions>
413 <configuration>
414 </configuration>
415 </plugin>
416 </plugins>
417 </build>
418 </profile>
419 <profile>
420 <id>setup-checkout</id>
421 <activation>
422 <file>
423 <missing>site-content</missing>
424 </file>
425 </activation>
426 <build>
427 <plugins>
428 <plugin>
429 <groupId>org.apache.maven.plugins</groupId>
430 <artifactId>maven-antrun-plugin</artifactId>
431 <version>1.7</version>
432 <executions>
433 <execution>
434 <id>prepare-checkout</id>
435 <phase>pre-site</phase>
436 <goals>
437 <goal>run</goal>
438 </goals>
439 <configuration>
440 <tasks>
441 <exec executable="svn">
442 <arg line="checkout --depth immediates ${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}"/>
443 </exec>
444
445 <exec executable="svn">
446 <arg line="update --set-depth exclude ${commons.scmPubCheckoutDirectory}/javadocs"/>
447 </exec>
448
449 <pathconvert pathsep=" " property="dirs">
450 <dirset dir="${commons.scmPubCheckoutDirectory}" includes="*"/>
451 </pathconvert>
452 <exec executable="svn">
453 <arg line="update --set-depth infinity ${dirs}"/>
454 </exec>
455 </tasks>
456 </configuration>
457 </execution>
458 </executions>
459 </plugin>
460 </plugins>
461 </build>
462 </profile>
463 <!-- Ekstazi (www.ekstazi.org) profile to optimize regression testing -->
464 <profile>
465 <id>ekstazi</id>
466 <activation>
467 <property>
468 <name>ekstazi</name>
469 </property>
470 </activation>
471 <build>
472 <plugins>
473 <plugin>
474 <groupId>org.ekstazi</groupId>
475 <artifactId>ekstazi-maven-plugin</artifactId>
476 <version>4.4.0</version>
477 <configuration>
478 <forcefailing>true</forcefailing>
479 </configuration>
480 <executions>
481 <execution>
482 <id>ekstazi</id>
483 <goals>
484 <goal>select</goal>
485 <goal>restore</goal>
486 </goals>
487 </execution>
488 </executions>
489 </plugin>
490 <plugin>
491 <groupId>org.apache.maven.plugins</groupId>
492 <artifactId>maven-surefire-plugin</artifactId>
493 <configuration>
494 <excludesFile>${java.io.tmpdir}/${user.name}EkstaziExcludes</excludesFile>
495 </configuration>
496 </plugin>
497 </plugins>
498 </build>
499 </profile>
500
501 <profile>
502 <id>travis</id>
503 <activation>
504 <property>
505 <name>env.TRAVIS</name>
506 <value>true</value>
507 </property>
508 </activation>
509 <build>
510 <plugins>
511 <plugin>
512 <groupId>org.jacoco</groupId>
513 <artifactId>jacoco-maven-plugin</artifactId>
514 <version>${commons.jacoco.version}</version>
515 <executions>
516 <execution>
517 <id>default-prepare-agent</id>
518 <goals>
519 <goal>prepare-agent</goal>
520 </goals>
521 </execution>
522 <execution>
523 <id>default-prepare-agent-integration</id>
524 <goals>
525 <goal>prepare-agent-integration</goal>
526 </goals>
527 </execution>
528 <execution>
529 <id>default-report</id>
530 <goals>
531 <goal>report</goal>
532 </goals>
533 </execution>
534 <execution>
535 <id>default-report-integration</id>
536 <goals>
537 <goal>report-integration</goal>
538 </goals>
539 </execution>
540 <execution>
541 <id>default-check</id>
542 <goals>
543 <goal>check</goal>
544 </goals>
545 <configuration>
546 <rules>
547 <!-- implementation is needed only for Maven 2 -->
548 <rule implementation="org.jacoco.maven.RuleConfiguration">
549 <element>BUNDLE</element>
550 <limits>
551 <!-- implementation is needed only for Maven 2 -->
552 <limit implementation="org.jacoco.report.check.Limit">
553 <counter>COMPLEXITY</counter>
554 <value>COVEREDRATIO</value>
555 <minimum>0.60</minimum>
556 </limit>
557 </limits>
558 </rule>
559 </rules>
560 </configuration>
561 </execution>
562 </executions>
563 </plugin>
564 <plugin>
565 <groupId>org.eluder.coveralls</groupId>
566 <artifactId>coveralls-maven-plugin</artifactId>
567 <version>3.1.0</version>
568 </plugin>
569 </plugins>
570 </build>
571 </profile>
572
573 <!--
574 Profiles for modules with special requirements.
575 -->
576 <profile>
577 <id>commons-rng-examples</id>
578 <modules>
579 <module>commons-rng-examples</module>
580 </modules>
581 </profile>
582
583 </profiles>
584
585 <modules>
586 <module>commons-rng-client-api</module>
587 <module>commons-rng-core</module>
588 <module>commons-rng-simple</module>
589 <module>commons-rng-sampling</module>
590 <!--
591 Built only upon explicit request (requires Java 1.7+).
592 See profile "commons-rng-examples".
593 -->
594 <!-- <module>commons-rng-examples</module> -->
595 </modules>
596
597 </project>