xref: /aosp_15_r20/external/apache-commons-io/pom.xml (revision 0c4d7b72e49a04598d65c566f44504b95342d75a)
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>64</version>
23  </parent>
24  <modelVersion>4.0.0</modelVersion>
25  <groupId>commons-io</groupId>
26  <artifactId>commons-io</artifactId>
27  <version>2.15.0</version>
28  <name>Apache Commons IO</name>
29
30  <inceptionYear>2002</inceptionYear>
31  <description>
32The Apache Commons IO library contains utility classes, stream implementations, file filters,
33file comparators, endian transformation classes, and much more.
34  </description>
35
36  <url>https://commons.apache.org/proper/commons-io/</url>
37
38  <issueManagement>
39    <system>jira</system>
40    <url>https://issues.apache.org/jira/browse/IO</url>
41  </issueManagement>
42
43  <distributionManagement>
44    <site>
45      <id>apache.website</id>
46      <name>Apache Commons Site</name>
47      <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-io/</url>
48    </site>
49  </distributionManagement>
50
51  <scm>
52    <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-io.git</connection>
53    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-io.git</developerConnection>
54    <url>https://gitbox.apache.org/repos/asf?p=commons-io.git</url>
55    <tag>rel/commons-io-2.15.0</tag>
56  </scm>
57
58  <developers>
59    <developer>
60      <name>Scott Sanders</name>
61      <id>sanders</id>
62      <email>[email protected]</email>
63      <organization />
64      <roles>
65        <role>Java Developer</role>
66      </roles>
67    </developer>
68    <developer>
69      <name>dIon Gillard</name>
70      <!-- Note: first name is correctly capitalised above -->
71      <id>dion</id>
72      <email>[email protected]</email>
73      <organization />
74      <roles>
75        <role>Java Developer</role>
76      </roles>
77    </developer>
78    <developer>
79      <name>Nicola Ken Barozzi</name>
80      <id>nicolaken</id>
81      <email>[email protected]</email>
82      <organization />
83      <roles>
84        <role>Java Developer</role>
85      </roles>
86    </developer>
87    <developer>
88      <name>Henri Yandell</name>
89      <id>bayard</id>
90      <email>[email protected]</email>
91      <organization />
92      <roles>
93        <role>Java Developer</role>
94      </roles>
95    </developer>
96    <developer>
97      <name>Stephen Colebourne</name>
98      <id>scolebourne</id>
99      <organization />
100      <roles>
101        <role>Java Developer</role>
102      </roles>
103      <timezone>0</timezone>
104    </developer>
105    <developer>
106      <name>Jeremias Maerki</name>
107      <id>jeremias</id>
108      <email>[email protected]</email>
109      <organization />
110      <roles>
111        <role>Java Developer</role>
112      </roles>
113      <timezone>+1</timezone>
114    </developer>
115    <developer>
116      <name>Matthew Hawthorne</name>
117      <id>matth</id>
118      <email>[email protected]</email>
119      <organization />
120      <roles>
121        <role>Java Developer</role>
122      </roles>
123    </developer>
124    <developer>
125      <name>Martin Cooper</name>
126      <id>martinc</id>
127      <email>[email protected]</email>
128      <organization />
129      <roles>
130        <role>Java Developer</role>
131      </roles>
132    </developer>
133    <developer>
134      <name>Rob Oxspring</name>
135      <id>roxspring</id>
136      <email>[email protected]</email>
137      <organization />
138      <roles>
139        <role>Java Developer</role>
140      </roles>
141    </developer>
142    <developer>
143      <name>Jochen Wiedmann</name>
144      <id>jochen</id>
145      <email>[email protected]</email>
146    </developer>
147    <developer>
148      <name>Niall Pemberton</name>
149      <id>niallp</id>
150      <roles>
151        <role>Java Developer</role>
152      </roles>
153    </developer>
154    <developer>
155      <name>Jukka Zitting</name>
156      <id>jukka</id>
157      <roles>
158        <role>Java Developer</role>
159      </roles>
160    </developer>
161    <developer>
162      <id>ggregory</id>
163      <name>Gary Gregory</name>
164      <email>ggregory at apache.org</email>
165      <url>https://www.garygregory.com</url>
166      <organization>The Apache Software Foundation</organization>
167      <organizationUrl>https://www.apache.org/</organizationUrl>
168      <roles>
169        <role>PMC Member</role>
170      </roles>
171      <timezone>America/New_York</timezone>
172      <properties>
173        <picUrl>https://people.apache.org/~ggregory/img/garydgregory80.png</picUrl>
174      </properties>
175    </developer>
176    <developer>
177      <name>Kristian Rosenvold</name>
178      <id>krosenvold</id>
179      <email>[email protected]</email>
180      <timezone>+1</timezone>
181    </developer>
182  </developers>
183
184  <contributors>
185    <contributor>
186      <name>Rahul Akolkar</name>
187    </contributor>
188    <contributor>
189      <name>Jason Anderson</name>
190    </contributor>
191    <contributor>
192      <name>Nathan Beyer</name>
193    </contributor>
194    <contributor>
195      <name>Emmanuel Bourg</name>
196    </contributor>
197    <contributor>
198      <name>Chris Eldredge</name>
199    </contributor>
200    <contributor>
201      <name>Magnus Grimsell</name>
202    </contributor>
203    <contributor>
204      <name>Jim Harrington</name>
205    </contributor>
206    <contributor>
207      <name>Thomas Ledoux</name>
208    </contributor>
209    <contributor>
210      <name>Andy Lehane</name>
211    </contributor>
212    <contributor>
213      <name>Marcelo Liberato</name>
214    </contributor>
215    <contributor>
216      <name>Alban Peignier</name>
217      <email>alban.peignier at free.fr</email>
218    </contributor>
219    <contributor>
220      <name>Adam Retter</name>
221      <organization>Evolved Binary</organization>
222    </contributor>
223    <contributor>
224      <name>Ian Springer</name>
225    </contributor>
226    <contributor>
227      <name>Dominik Stadler</name>
228    </contributor>
229    <contributor>
230      <name>Masato Tezuka</name>
231    </contributor>
232    <contributor>
233      <name>James Urie</name>
234    </contributor>
235    <contributor>
236      <name>Frank W. Zammetti</name>
237    </contributor>
238    <contributor>
239      <name>Martin Grigorov</name>
240      <email>[email protected]</email>
241    </contributor>
242    <contributor>
243      <name>Arturo Bernal</name>
244    </contributor>
245  </contributors>
246
247  <dependencies>
248    <dependency>
249      <groupId>org.junit.jupiter</groupId>
250      <artifactId>junit-jupiter</artifactId>
251      <scope>test</scope>
252    </dependency>
253    <dependency>
254      <groupId>org.junit-pioneer</groupId>
255      <artifactId>junit-pioneer</artifactId>
256      <version>1.9.1</version>
257      <scope>test</scope>
258    </dependency>
259    <dependency>
260      <!-- Java 21 support, revisit for Mockito 5 -->
261      <groupId>net.bytebuddy</groupId>
262      <artifactId>byte-buddy</artifactId>
263      <version>${commons.bytebuddy.version}</version>
264      <scope>test</scope>
265    </dependency>
266    <dependency>
267      <!-- Java 21 support, revisit for Mockito 5 -->
268      <groupId>net.bytebuddy</groupId>
269      <artifactId>byte-buddy-agent</artifactId>
270      <version>${commons.bytebuddy.version}</version>
271      <scope>test</scope>
272    </dependency>
273    <dependency>
274      <groupId>org.mockito</groupId>
275      <artifactId>mockito-inline</artifactId>
276      <version>4.11.0</version>
277      <scope>test</scope>
278    </dependency>
279    <dependency>
280      <groupId>com.google.jimfs</groupId>
281      <artifactId>jimfs</artifactId>
282      <version>1.3.0</version>
283      <scope>test</scope>
284    </dependency>
285    <dependency>
286      <groupId>org.apache.commons</groupId>
287      <artifactId>commons-lang3</artifactId>
288      <version>3.13.0</version>
289      <scope>test</scope>
290    </dependency>
291    <dependency>
292      <groupId>commons-codec</groupId>
293      <artifactId>commons-codec</artifactId>
294      <version>1.16.0</version>
295      <scope>test</scope>
296    </dependency>
297    <dependency>
298      <groupId>org.openjdk.jmh</groupId>
299      <artifactId>jmh-core</artifactId>
300      <version>${jmh.version}</version>
301      <scope>test</scope>
302    </dependency>
303    <dependency>
304      <groupId>org.openjdk.jmh</groupId>
305      <artifactId>jmh-generator-annprocess</artifactId>
306      <version>${jmh.version}</version>
307      <scope>test</scope>
308    </dependency>
309  </dependencies>
310
311  <properties>
312    <maven.compiler.source>1.8</maven.compiler.source>
313    <maven.compiler.target>1.8</maven.compiler.target>
314    <commons.componentid>io</commons.componentid>
315    <commons.module.name>org.apache.commons.io</commons.module.name>
316    <commons.rc.version>RC1</commons.rc.version>
317    <commons.bc.version>2.14.0</commons.bc.version>
318    <commons.release.version>2.15.0</commons.release.version>
319    <commons.release.next>2.15.1</commons.release.next>
320    <commons.release.desc>(requires Java 8)</commons.release.desc>
321    <commons.jira.id>IO</commons.jira.id>
322    <commons.jira.pid>12310477</commons.jira.pid>
323    <commons.osgi.export>
324        <!-- Explicit list of packages from IO 1.4 -->
325        org.apache.commons.io;
326        org.apache.commons.io.comparator;
327        org.apache.commons.io.filefilter;
328        org.apache.commons.io.input;
329        org.apache.commons.io.output;version=1.4.9999;-noimport:=true,
330        <!-- Same list plus * for new packages -->
331        org.apache.commons.io;
332        org.apache.commons.io.comparator;
333        org.apache.commons.io.filefilter;
334        org.apache.commons.io.input;
335        org.apache.commons.io.output;
336        org.apache.commons.io.*;version=${project.version};-noimport:=true
337    </commons.osgi.export>
338    <commons.osgi.import>
339        <!-- IO-734 - Make the sun.* references from BufferedFileChannelInputStream optional -->
340        sun.nio.ch;resolution:=optional,
341        sun.misc;resolution:=optional,
342        *
343    </commons.osgi.import>
344    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-io/</commons.scmPubUrl>
345    <commons.scmPubCheckoutDirectory>site-content</commons.scmPubCheckoutDirectory>
346    <commons.javadoc.java.link>${commons.javadoc8.java.link}</commons.javadoc.java.link>
347    <commons.moditect.version>1.0.0.Final</commons.moditect.version>
348    <jmh.version>1.37</jmh.version>
349    <commons.bytebuddy.version>1.14.9</commons.bytebuddy.version>
350    <japicmp.skip>false</japicmp.skip>
351    <jacoco.skip>${env.JACOCO_SKIP}</jacoco.skip>
352    <commons.release.isDistModule>true</commons.release.isDistModule>
353  </properties>
354
355  <build>
356    <!-- japicmp:cmp needs package to work from a jar -->
357    <defaultGoal>clean verify apache-rat:check japicmp:cmp checkstyle:check pmd:check javadoc:javadoc</defaultGoal>
358    <pluginManagement>
359      <plugins>
360        <plugin>
361          <groupId>org.apache.rat</groupId>
362          <artifactId>apache-rat-plugin</artifactId>
363          <version>0.15</version>
364          <configuration>
365            <excludes>
366              <exclude>src/test/resources/**/*.bin</exclude>
367              <exclude>src/test/resources/dir-equals-tests/**</exclude>
368              <exclude>test/**</exclude>
369            </excludes>
370          </configuration>
371        </plugin>
372        <plugin>
373          <groupId>org.apache.maven.plugins</groupId>
374          <artifactId>maven-checkstyle-plugin</artifactId>
375          <configuration>
376            <configLocation>${basedir}/src/conf/checkstyle.xml</configLocation>
377            <suppressionsLocation>${basedir}/src/conf/checkstyle-suppressions.xml</suppressionsLocation>
378            <enableRulesSummary>false</enableRulesSummary>
379            <includeTestSourceDirectory>true</includeTestSourceDirectory>
380          </configuration>
381        </plugin>
382      </plugins>
383    </pluginManagement>
384    <plugins>
385      <plugin>
386        <groupId>org.apache.maven.plugins</groupId>
387        <artifactId>maven-jar-plugin</artifactId>
388        <executions>
389          <execution>
390            <goals>
391              <goal>test-jar</goal>
392            </goals>
393          </execution>
394        </executions>
395        <configuration>
396          <archive combine.children="append">
397            <manifestEntries>
398              <Automatic-Module-Name>${commons.module.name}</Automatic-Module-Name>
399            </manifestEntries>
400          </archive>
401        </configuration>
402      </plugin>
403      <plugin>
404        <groupId>org.apache.maven.plugins</groupId>
405        <artifactId>maven-surefire-plugin</artifactId>
406        <configuration>
407          <classpathDependencyExcludes>
408            <classpathDependencyExclude>xerces:xercesImpl</classpathDependencyExclude>
409          </classpathDependencyExcludes>
410          <forkCount>1</forkCount>
411          <reuseForks>false</reuseForks>
412          <!-- Limit memory size see IO-161 -->
413          <!-- Mockito inline may need -XX:+EnableDynamicAgentLoading -->
414          <argLine>${argLine} -Xmx25M</argLine>
415          <includes>
416            <!-- Only include test classes, not test data -->
417            <include>**/*Test*.class</include>
418          </includes>
419          <excludes>
420            <exclude>**/*AbstractTestCase*</exclude>
421            <exclude>**/testtools/**</exclude>
422            <!-- https://issues.apache.org/jira/browse/SUREFIRE-44 -->
423            <exclude>**/*$*</exclude>
424          </excludes>
425        </configuration>
426      </plugin>
427      <plugin>
428        <artifactId>maven-assembly-plugin</artifactId>
429        <configuration>
430          <descriptors>
431            <descriptor>src/assembly/bin.xml</descriptor>
432            <descriptor>src/assembly/src.xml</descriptor>
433          </descriptors>
434          <tarLongFileMode>gnu</tarLongFileMode>
435        </configuration>
436      </plugin>
437      <plugin>
438        <groupId>org.apache.maven.plugins</groupId>
439        <artifactId>maven-checkstyle-plugin</artifactId>
440      </plugin>
441      <plugin>
442        <groupId>org.apache.maven.plugins</groupId>
443        <artifactId>maven-scm-publish-plugin</artifactId>
444        <configuration>
445          <ignorePathsToDelete>
446            <ignorePathToDelete>javadocs</ignorePathToDelete>
447          </ignorePathsToDelete>
448        </configuration>
449      </plugin>
450      <plugin>
451        <groupId>com.github.spotbugs</groupId>
452        <artifactId>spotbugs-maven-plugin</artifactId>
453        <configuration>
454          <excludeFilterFile>${basedir}/src/conf/spotbugs-exclude-filter.xml</excludeFilterFile>
455        </configuration>
456      </plugin>
457      <plugin>
458        <groupId>com.github.siom79.japicmp</groupId>
459        <artifactId>japicmp-maven-plugin</artifactId>
460        <configuration>
461          <parameter>
462			 <excludes>
463               <!-- False positive: https://github.com/siom79/japicmp/issues/365 -->
464               <exclude>org.apache.commons.io.StreamIterator</exclude>
465             </excludes>
466          </parameter>
467        </configuration>
468      </plugin>
469      <plugin>
470        <groupId>org.apache.maven.plugins</groupId>
471        <artifactId>maven-pmd-plugin</artifactId>
472        <configuration>
473          <rulesets>
474            <ruleset>src/conf/maven-pmd-plugin.xml</ruleset>
475          </rulesets>
476		</configuration>
477      </plugin>
478    </plugins>
479  </build>
480
481  <reporting>
482    <plugins>
483      <plugin>
484        <groupId>org.apache.maven.plugins</groupId>
485        <artifactId>maven-checkstyle-plugin</artifactId>
486      </plugin>
487      <plugin>
488        <groupId>com.github.spotbugs</groupId>
489        <artifactId>spotbugs-maven-plugin</artifactId>
490        <configuration>
491          <excludeFilterFile>${basedir}/src/conf/spotbugs-exclude-filter.xml</excludeFilterFile>
492        </configuration>
493      </plugin>
494      <plugin>
495        <groupId>com.github.siom79.japicmp</groupId>
496        <artifactId>japicmp-maven-plugin</artifactId>
497        <configuration>
498          <parameter>
499			 <excludes>
500               <!-- False positive: https://github.com/siom79/japicmp/issues/365 -->
501               <exclude>org.apache.commons.io.StreamIterator</exclude>
502             </excludes>
503          </parameter>
504        </configuration>
505      </plugin>
506    </plugins>
507  </reporting>
508  <profiles>
509    <profile>
510      <id>setup-checkout</id>
511      <activation>
512        <file>
513          <missing>site-content</missing>
514        </file>
515      </activation>
516      <build>
517        <plugins>
518          <plugin>
519            <groupId>org.apache.maven.plugins</groupId>
520            <artifactId>maven-antrun-plugin</artifactId>
521            <version>3.1.0</version>
522            <executions>
523              <execution>
524                <id>prepare-checkout</id>
525                <phase>pre-site</phase>
526                <goals>
527                  <goal>run</goal>
528                </goals>
529                <configuration>
530                  <target>
531                    <exec executable="svn">
532                      <arg line="checkout --depth immediates ${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}" />
533                    </exec>
534
535                    <exec executable="svn">
536                      <arg line="update --set-depth exclude ${commons.scmPubCheckoutDirectory}/javadocs" />
537                    </exec>
538
539                    <pathconvert pathsep=" " property="dirs">
540                      <dirset dir="${commons.scmPubCheckoutDirectory}" includes="*" />
541                    </pathconvert>
542                    <exec executable="svn">
543                      <arg line="update --set-depth infinity ${dirs}" />
544                    </exec>
545                  </target>
546                </configuration>
547              </execution>
548            </executions>
549          </plugin>
550        </plugins>
551      </build>
552    </profile>
553    <profile>
554      <id>java9-compile</id>
555      <activation>
556        <jdk>[9,)</jdk>
557      </activation>
558      <properties>
559        <!-- coverall version 4.3.0 does not work with java 9, see https://github.com/trautonen/coveralls-maven-plugin/issues/112 -->
560        <coveralls.skip>true</coveralls.skip>
561        <maven.compiler.release>8</maven.compiler.release>
562      </properties>
563    </profile>
564    <profile>
565      <id>java9-moditect</id>
566      <activation>
567        <!--
568        Fails on Java 11 and Windows:
569        Error:  Failed to execute goal org.moditect:moditect-maven-plugin:1.0.0.RC2:add-module-info (add-module-infos) on project commons-io: Execution add-module-infos of goal org.moditect:moditect-maven-plugin:1.0.0.RC2:add-module-info failed: Couldn't add module-info.class to JAR: D:\a\commons-io\commons-io\target\commons-io-2.12.0-SNAPSHOT.jar: The process cannot access the file because it is being used by another process. -> [Help 1]
570        -->
571        <jdk>[9,11)</jdk>
572      </activation>
573      <build>
574        <plugins>
575          <plugin>
576            <groupId>org.moditect</groupId>
577            <artifactId>moditect-maven-plugin</artifactId>
578            <version>${commons.moditect.version}</version>
579            <executions>
580              <execution>
581                <id>add-module-infos</id>
582                <phase>package</phase>
583                <goals>
584                  <goal>add-module-info</goal>
585                </goals>
586                <configuration>
587                  <jvmVersion>9</jvmVersion>
588                  <outputDirectory>${project.build.directory}</outputDirectory>
589                  <overwriteExistingFiles>true</overwriteExistingFiles>
590                  <module>
591                    <moduleInfo>
592                      <name>org.apache.commons.io</name>
593                    </moduleInfo>
594                  </module>
595                </configuration>
596              </execution>
597            </executions>
598          </plugin>
599        </plugins>
600      </build>
601    </profile>
602    <profile>
603      <id>benchmark</id>
604      <properties>
605        <skipTests>true</skipTests>
606        <benchmark>org.apache</benchmark>
607      </properties>
608      <build>
609        <plugins>
610          <plugin>
611            <groupId>org.codehaus.mojo</groupId>
612            <artifactId>exec-maven-plugin</artifactId>
613            <version>3.1.0</version>
614            <executions>
615              <execution>
616                <id>benchmark</id>
617                <phase>test</phase>
618                <goals>
619                  <goal>exec</goal>
620                </goals>
621                <configuration>
622                  <classpathScope>test</classpathScope>
623                  <executable>java</executable>
624                  <arguments>
625                    <argument>-classpath</argument>
626                    <classpath/>
627                    <argument>org.openjdk.jmh.Main</argument>
628                    <argument>-rf</argument>
629                    <argument>json</argument>
630                    <argument>-rff</argument>
631                    <argument>target/jmh-result.${benchmark}.json</argument>
632                    <argument>${benchmark}</argument>
633                  </arguments>
634                </configuration>
635              </execution>
636            </executions>
637          </plugin>
638        </plugins>
639      </build>
640    </profile>
641  </profiles>
642</project>
643