JezK
Edit File: commons-parent-debian.pom
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <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"> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.commons</groupId> <artifactId>commons-parent</artifactId> <version>debian</version> <packaging>pom</packaging> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>debian</version> </parent> <name>Apache Commons Parent</name> <description>The Apache Commons Parent POM provides common settings for all Apache Commons components.</description> <!-- Override inceptionYear in components, required by commons-build-plugin --> <!-- In release 31, the maven.compile.* properties were corrected to maven.compiler.* [See COMMONSSITE-69] If updating from a previous version, please check the property definitions Starting with version 22, the RAT plugin has changed Maven group and id, so any existing configuration needs to be updated. To fix component POMs, please change any occurrences of: <groupId>org.codehaus.mojo</groupId> <artifactId>rat-maven-plugin</artifactId> to the new values: <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> Site deployment =============== Cannot define this here at present, see https://issues.apache.org/jira/browse/COMMONSSITE-26. The following should be added to the component POM: <distributionManagement> <site> <id>commons.site</id> <name>Apache Commons Site SVN</name> <url>scm:svn:${commons.scmPubUrl}</url> </site> </distributionManagement> Alternatively you can map the component's existing site id to the commons.scmPubServer property. Coverage tool selection ======================= Starting with release 30, there are optional profiles for both Cobertura and JaCoCo. These can be enabled independently on the command-line: mvn site -Pcobertura -Pjacoco Or the component can define a default coverage tool by creating either (or both) of the following files: src/site/resources/profile.cobertura src/site/resources/profile.jacoco These can later be overridden by cancelling the profile: mvn site -P!jacoco --> <properties> <!-- Minimum Maven version required by the plugins --> <minimalMavenBuildVersion>3.3.9</minimalMavenBuildVersion> <!-- configuration bits for cutting a release candidate, must be overridden by components --> <!-- TODO How can we make project.build.outputTimestamp and changes.xml's release data the same? --> <project.build.outputTimestamp>2022-12-30T16:12:53Z</project.build.outputTimestamp> <commons.release.version>${project.version}</commons.release.version> <commons.rc.version>RC1</commons.rc.version> <commons.jira.id>COMMONSSITE</commons.jira.id> <!-- Commons Release Plugin --> <commons.bc.version>55</commons.bc.version> <commons.release.isDistModule>true</commons.release.isDistModule> <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName> <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey> <!-- Default configuration for compiler source and target JVM --> <!-- Do NOT change this; it must remain as 1.3 --> <!-- It's important that child POMs don't need to change when the parent POM is updated. At the time when these properties were introduced, the default Java version was 1.3. Thus components that failed to define the version would not be affected by updates to the Commons Parent or its parent the Apache pom. Of course most if not all components now define the properties. However it's still important to keep the properties as they effectively force child poms to define the Java version they require. --> <maven.compiler.source>1.3</maven.compiler.source> <maven.compiler.target>1.3</maven.compiler.target> <!-- compiler and surefire plugin settings for "java" profiles --> <commons.compiler.fork>false</commons.compiler.fork> <commons.compiler.compilerVersion> </commons.compiler.compilerVersion> <commons.compiler.javac> </commons.compiler.javac> <commons.compiler.javadoc> </commons.compiler.javadoc> <!-- plugin versions (allows same value in reporting and build sections; also allows easy override) --> <commons.animal-sniffer.version>1.22</commons.animal-sniffer.version> <!-- Almost all signatures use version 1.0. Allow override just in case --> <commons.animal-sniffer.signature.version>1.0</commons.animal-sniffer.signature.version> <commons.assembly-plugin.version>3.4.2</commons.assembly-plugin.version> <commons.build-helper.version>3.3.0</commons.build-helper.version> <commons.build-plugin.version>1.12</commons.build-plugin.version> <commons.changes.version>2.12.1</commons.changes.version> <commons.checkstyle-plugin.version>3.2.0</commons.checkstyle-plugin.version> <commons.checkstyle.version>9.3</commons.checkstyle.version> <commons.cobertura.version>2.7</commons.cobertura.version> <commons.compiler.version>3.10.1</commons.compiler.version> <commons.coveralls.version>4.3.0</commons.coveralls.version> <commons.coveralls.timestampFormat>EpochMillis</commons.coveralls.timestampFormat> <commons.cyclonedx.version>2.7.3</commons.cyclonedx.version> <commons.spdx.version>0.6.3</commons.spdx.version> <commons.failsafe.version>3.0.0-M7</commons.failsafe.version> <commons.felix.version>5.1.8</commons.felix.version> <commons.jacoco.version>0.8.8</commons.jacoco.version> <commons.japicmp.version>0.17.1</commons.japicmp.version> <commons.jar-plugin.version>3.3.0</commons.jar-plugin.version> <commons.javadoc.version>3.4.1</commons.javadoc.version> <commons.jxr.version>3.3.0</commons.jxr.version> <commons.pmd.version>3.19.0</commons.pmd.version> <commons.pmd-impl.version>6.52.0</commons.pmd-impl.version> <commons.project-info.version>3.4.1</commons.project-info.version> <commons.rat.version>0.15</commons.rat.version> <commons.release-plugin.version>1.8.0</commons.release-plugin.version> <commons.scm-publish.version>1.1</commons.scm-publish.version> <commons.enforcer-plugin.version>3.1.0</commons.enforcer-plugin.version> <commons.buildnumber-plugin.version>3.0.0</commons.buildnumber-plugin.version> <commons.biz.aQute.bndlib.version>6.4.0</commons.biz.aQute.bndlib.version> <commons.junit.version>5.9.1</commons.junit.version> <!-- Note: Maven site plugin 3.5.1 is the latest version but is not a direct replacement: https://maven.apache.org/plugins/maven-site-plugin/migrate.html In particular, adding CDATA to header and footer sections is not backwards compatible. I.e. these have to be updated at the same time. Also it causes the following errors: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.5.1:site (default-site) on project commons-parent: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.5.1:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.5.1:site: org/apache/maven/doxia/sink/impl/XhtmlBaseSink This is because Apache POM 17 forces an older version of Doxia core: https://mail-archives.apache.org/mod_mbox/maven-users/201602.mbox/%3C2337255.xU7aS9G1qr@herve-desktop%3E The same error applies when running with version 3.5. Since the version is defined as a property, the CP version can be overridden as follows if necessary: mvn site -Dcommons.site-plugin.version=3.5.1 You will also need to add a dependency on Doxia core: <artifactId>maven-site-plugin</artifactId> <dependencies> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-core</artifactId> <version>1.8</version> </dependency> </dependencies> --> <!-- Warning: maven-site-plugin 4.0.0-M3 requires an update to commons-skin site.vm for new variable names. --> <commons.site-plugin.version>3.12.1</commons.site-plugin.version> <commons.source-plugin.version>3.2.1</commons.source-plugin.version> <commons.spotbugs.plugin.version>4.7.3.0</commons.spotbugs.plugin.version> <commons.spotbugs.impl.version>4.7.3</commons.spotbugs.impl.version> <commons.surefire-report.version>3.0.0-M7</commons.surefire-report.version> <commons.surefire.version>3.0.0-M7</commons.surefire.version> <commons.wagon-ssh.version>3.5.3</commons.wagon-ssh.version> <!-- Default values for the download-page generation by commons-build-plugin --> <commons.release.name>${project.artifactId}-${commons.release.version}</commons.release.name> <commons.release.desc> </commons.release.desc> <commons.binary.suffix>-bin</commons.binary.suffix> <commons.release.2.name>${project.artifactId}-${commons.release.2.version}</commons.release.2.name> <commons.release.2.desc> </commons.release.2.desc> <commons.release.2.binary.suffix>-bin</commons.release.2.binary.suffix> <commons.release.3.name>${project.artifactId}-${commons.release.3.version}</commons.release.3.name> <commons.release.3.desc> </commons.release.3.desc> <commons.release.3.binary.suffix>-bin</commons.release.3.binary.suffix> <commons.release.4.desc> </commons.release.4.desc> <commons.release.4.binary.suffix>-bin</commons.release.4.binary.suffix> <!-- Default values for the jacoco-maven-plugin reports --> <commons.jacoco.classRatio>1.00</commons.jacoco.classRatio> <commons.jacoco.instructionRatio>0.90</commons.jacoco.instructionRatio> <commons.jacoco.methodRatio>0.95</commons.jacoco.methodRatio> <commons.jacoco.branchRatio>0.85</commons.jacoco.branchRatio> <commons.jacoco.complexityRatio>0.85</commons.jacoco.complexityRatio> <commons.jacoco.lineRatio>0.90</commons.jacoco.lineRatio> <commons.jacoco.haltOnFailure>false</commons.jacoco.haltOnFailure> <!-- The Commons component id is used on the distribution server, for example: - Use dbcp instead of dbcp2. - Use collections instead of collections4. - Use lang instead of lang3. - Use pool instead of pool2. - and so on... --> <commons.componentid>${project.artifactId}</commons.componentid> <!-- The package id is substring of the package name from o.a.commons.(.*)., for example: - Use dbcp2 instead of dbcp. - Use collections4 instead of collections. - Use lang3 instead of lang. - Use pool2 instead of pool. - and so on... --> <commons.packageId>${project.artifactId}</commons.packageId> <!-- Configuration properties for the OSGi maven-bundle-plugin --> <commons.osgi.symbolicName>org.apache.commons.${commons.packageId}</commons.osgi.symbolicName> <commons.osgi.export>org.apache.commons.*;version=${project.version};-noimport:=true</commons.osgi.export> <commons.osgi.import>*</commons.osgi.import> <commons.osgi.dynamicImport> </commons.osgi.dynamicImport> <commons.osgi.private> </commons.osgi.private> <commons.osgi.excludeDependencies>true</commons.osgi.excludeDependencies> <!-- location of any manifest file used by maven-jar-plugin --> <commons.manifestfile>${project.build.directory}/osgi/MANIFEST.MF</commons.manifestfile> <!-- Make the deployment protocol pluggable. This allows to switch to other protocols like scpexe, which some users prefer over scp. --> <commons.deployment.protocol>scp</commons.deployment.protocol> <!-- Encoding of Java source files: ensures that the compiler and the javadoc generator use the right encoding. Subprojects may overwrite this, if they are using another encoding. --> <commons.encoding>iso-8859-1</commons.encoding> <!-- used in this pom to provide the Javadoc HTML file encoding --> <commons.docEncoding>${commons.encoding}</commons.docEncoding> <!-- Define source encoding for filtering; used by general plugins --> <project.build.sourceEncoding>${commons.encoding}</project.build.sourceEncoding> <!-- This is used by reporting plugins --> <project.reporting.outputEncoding>${commons.encoding}</project.reporting.outputEncoding> <!-- Javadoc link to Java API. Default is Java 1.7; components can override to other versions --> <commons.javadoc6.java.link>https://docs.oracle.com/javase/6/docs/api/</commons.javadoc6.java.link> <commons.javadoc7.java.link>https://docs.oracle.com/javase/7/docs/api/</commons.javadoc7.java.link> <commons.javadoc8.java.link>https://docs.oracle.com/javase/8/docs/api/</commons.javadoc8.java.link> <commons.javadoc9.java.link>https://docs.oracle.com/javase/9/docs/api/</commons.javadoc9.java.link> <commons.javadoc10.java.link>https://docs.oracle.com/javase/10/docs/api/</commons.javadoc10.java.link> <commons.javadoc11.java.link>https://docs.oracle.com/en/java/javase/11/docs/api/</commons.javadoc11.java.link> <commons.javadoc12.java.link>https://docs.oracle.com/en/java/javase/12/docs/api/</commons.javadoc12.java.link> <commons.javadoc13.java.link>https://docs.oracle.com/en/java/javase/13/docs/api/</commons.javadoc13.java.link> <commons.javadoc14.java.link>https://docs.oracle.com/en/java/javase/14/docs/api/</commons.javadoc14.java.link> <commons.javadoc15.java.link>https://docs.oracle.com/en/java/javase/15/docs/api/</commons.javadoc15.java.link> <commons.javadoc16.java.link>https://docs.oracle.com/en/java/javase/16/docs/api/</commons.javadoc16.java.link> <commons.javadoc17.java.link>https://docs.oracle.com/en/java/javase/17/docs/api/</commons.javadoc17.java.link> <commons.javadoc18.java.link>https://docs.oracle.com/en/java/javase/18/docs/api/</commons.javadoc18.java.link> <commons.javadoc19.java.link>https://docs.oracle.com/en/java/javase/19/docs/api/</commons.javadoc19.java.link> <commons.javadoc.java.link>${commons.javadoc7.java.link}</commons.javadoc.java.link> <commons.javadoc.javaee5.link>https://docs.oracle.com/javaee/5/api/</commons.javadoc.javaee5.link> <commons.javadoc.javaee6.link>https://docs.oracle.com/javaee/6/api/</commons.javadoc.javaee6.link> <commons.javadoc.javaee7.link>https://docs.oracle.com/javaee/7/api/</commons.javadoc.javaee7.link> <commons.javadoc.javaee.link>${commons.javadoc.javaee6.link}</commons.javadoc.javaee.link> <!-- build meta inf --> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ssZ</maven.build.timestamp.format> <implementation.build>${scmBranch}@r${buildNumber}; ${maven.build.timestamp}</implementation.build> <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level --> <minSeverity>info</minSeverity> <!-- Allow surefire-report aggregation to be easily configured for multi-module projects --> <commons.surefire-report.aggregate>false</commons.surefire-report.aggregate> <!-- Allow changes Jira report to be restricted to just the current version (plugin default is false) --> <commons.changes.onlyCurrentVersion>false</commons.changes.onlyCurrentVersion> <!-- Allow changes Jira report maxEntries to be overridden (plugin default 100) --> <commons.changes.maxEntries>100</commons.changes.maxEntries> <!-- Allow changes Jira report runOnlyAtExecutionRoot to be overridden (plugin default is false) --> <commons.changes.runOnlyAtExecutionRoot>false</commons.changes.runOnlyAtExecutionRoot> <!-- scm publish plugin configuration --> <commons.site.cache>${user.home}/commons-sites</commons.site.cache> <!-- value modules can override it --> <commons.site.path>${commons.componentid}</commons.site.path> <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-${commons.componentid}</commons.scmPubUrl> <commons.scmPubCheckoutDirectory>${commons.site.cache}/${commons.site.path}</commons.scmPubCheckoutDirectory> <commons.scmPubServer>commons.site</commons.scmPubServer> <!-- allow japicmp's breakBuildOnBinaryIncompatibleModifications to be overridden, plugin's default is false --> <commons.japicmp.breakBuildOnBinaryIncompatibleModifications>true</commons.japicmp.breakBuildOnBinaryIncompatibleModifications> <commons.japicmp.breakBuildOnSourceIncompatibleModifications>false</commons.japicmp.breakBuildOnSourceIncompatibleModifications> <commons.japicmp.ignoreMissingClasses>false</commons.japicmp.ignoreMissingClasses> <!-- Commons Release plugin: dist dev site --> <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl> <!-- Commons Release plugin: release manager --> <commons.releaseManagerName>${user.name}</commons.releaseManagerName> <commons.releaseManagerKey>DEADBEEF</commons.releaseManagerKey> <sonar.host.url>https://analysis.apache.org/</sonar.host.url> <!-- allow override of changes.announcementFile and directory --> <changes.announcementDirectory>.</changes.announcementDirectory> <changes.announcementFile>RELEASE-NOTES.txt</changes.announcementFile> <debian.hasPackageVersion/> <debian.mavenRules>org.apache.commons commons-parent pom s/.*/debian/ * *</debian.mavenRules> <debian.originalVersion>56</debian.originalVersion> <debian.package>libcommons-parent-java</debian.package> </properties> <!-- This section *must* be overwritten by subprojects. It is only to allow a release of the commons-parent POM. --> <dependencyManagement> <dependencies> </dependencies> </dependencyManagement> <build> <!-- TODO find a better way to add N&L files to jars and test jars See also maven-remote-resources-plugin configuration below. --> <defaultGoal>clean apache-rat:check package site</defaultGoal> <resources> <!-- This is the default setting from the super-pom --> <resource> <directory>src/main/resources</directory> </resource> <!-- hack to ensure the N&L appear in jars --> <resource> <directory>${basedir}</directory> <targetPath>META-INF</targetPath> <includes> <include>NOTICE.txt</include> <include>LICENSE.txt</include> <include>NOTICE</include> <include>LICENSE</include> </includes> </resource> </resources> <!-- ensure test jars also get NOTICE & LICENSE files --> <testResources> <!-- This is the default setting from the super-pom --> <testResource> <directory>src/test/resources</directory> </testResource> <!-- hack to ensure the N&L appear in jars --> <testResource> <directory>${basedir}</directory> <targetPath>META-INF</targetPath> <includes> <include>NOTICE.txt</include> <include>LICENSE.txt</include> <include>NOTICE</include> <include>LICENSE</include> </includes> </testResource> </testResources> <pluginManagement> <plugins> <!-- org.apache.maven.plugins, alpha order by artifact id --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <encoding>${commons.encoding}</encoding> <!-- fork is set true by the java-1.x profiles This allows the use of a different version of the compiler from the JDK being used to run Maven --> <fork>${commons.compiler.fork}</fork> <!-- the following are only needed if fork is true --> <compilerVersion>${commons.compiler.compilerVersion}</compilerVersion> <executable>${commons.compiler.javac}</executable> </configuration> </plugin> <!-- Apache parent includes docck --> <!-- Apache parent: invoker --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <!-- Keep only errors and warnings --> <quiet>true</quiet> <source>${maven.compiler.source}</source> <javadocExecutable>${commons.compiler.javadoc}</javadocExecutable> <encoding>${commons.encoding}</encoding> <docencoding>${commons.docEncoding}</docencoding> <!-- Prevent too many SCM changes --> <notimestamp>true</notimestamp> <linksource>true</linksource> <links> <link>${commons.javadoc.java.link}</link> <link>${commons.javadoc.javaee.link}</link> </links> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> </archive> </configuration> </plugin> <!-- Apache parent: scm --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> </plugin> <!-- Other plugins, alpha order by groupId and artifactId --> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <inherited>true</inherited> <dependencies> </dependencies> </plugin> </plugins> </pluginManagement> <plugins> <!-- org.apache.maven.plugins, alpha order by artifact id --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <!-- Unfortunately the much simpler <prerequisites><maven>3.0</maven></prerequisites> is not inherited so we have to use the enforcer plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <goals> <goal>test-jar</goal> </goals> <configuration> <!-- Avoids an error when releasing the parent pom --> <skipIfEmpty>true</skipIfEmpty> </configuration> </execution> </executions> <configuration> <archive> <manifestFile>${commons.manifestfile}</manifestFile> <manifestEntries> <Specification-Title>${project.name}</Specification-Title> <Specification-Version>${project.version}</Specification-Version> <Specification-Vendor>${project.organization.name}</Specification-Vendor> <Implementation-Title>${project.name}</Implementation-Title> <Implementation-Version>${project.version}</Implementation-Version> <Implementation-Vendor>${project.organization.name}</Implementation-Vendor> <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id> <Implementation-Build>${implementation.build}</Implementation-Build> <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK> <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- commons.surefire.java is normally empty. It is defined by the java-1.x profiles to change the JVM used by Surefire --> <jvm>${commons.surefire.java}</jvm> </configuration> </plugin> <!-- Other plugins, alpha order by groupId and artifactId --> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <!-- dummy entry to stop bundle plugin from picking up jar config and reporting WARNING: Duplicate name in Manifest See http://markmail.org/message/mpkl24wk3jrjhhjg --> <archive> <forced>true</forced> </archive> <excludeDependencies>${commons.osgi.excludeDependencies}</excludeDependencies> <manifestLocation>${project.build.directory}/osgi</manifestLocation> <instructions> <!-- stops the "uses" clauses being added to "Export-Package" manifest entry --> <_nouses>true</_nouses> <!-- Stop the JAVA_1_n_HOME variables from being treated as headers by Bnd --> <_removeheaders>JAVA_1_3_HOME,JAVA_1_4_HOME,JAVA_1_5_HOME,JAVA_1_6_HOME,JAVA_1_7_HOME,JAVA_1_8_HOME,JAVA_1_9_HOME</_removeheaders> <Bundle-SymbolicName>${commons.osgi.symbolicName}</Bundle-SymbolicName> <Export-Package>${commons.osgi.export}</Export-Package> <Private-Package>${commons.osgi.private}</Private-Package> <Import-Package>${commons.osgi.import}</Import-Package> <DynamicImport-Package>${commons.osgi.dynamicImport}</DynamicImport-Package> <Bundle-DocURL>${project.url}</Bundle-DocURL> </instructions> </configuration> <executions> <execution> <id>bundle-manifest</id> <phase>process-classes</phase> <goals> <goal>manifest</goal> </goals> </execution> </executions> </plugin> <!-- Needed for command-line access, e.g mvn apache-rat:rat and mvn apache-rat:check --> </plugins> </build> </project>