Provided by: maven-repo-helper_1.9.4_all bug

NAME

       Maven - Cleans a POM file.

SYNOPSIS

       mh_cleanpom [option]... [pom] [target] [pom-props]

DESCRIPTION

       Cleans the POM and prepare it for inclusion in the Maven repository.  Also extracts some information from
       the POM.

       debian/maven.rules is used to alter the version properties for the library and its dependencies.

       Where

              [pom] is the location of the POM file to clean.

              Default to pom.xml or debian/pom.xml

              [target] is where the cleaned POM is written to.

              Default to debian/.mh/pom.xml

              [pom-props] is where the POM properties file will be written.

              Default to debian/.mh/pom.properties

OPTIONS

       -h --help: show this text

       -V --version: show the version

       -p<package> --package=<package>: name of the Debian package which

              will contain this POM file

       -h --has-package-version: flag that indicates that this POM has the

              same version as the package, this helps packagers of depending packages

       -o --no-parent: don't inherit from a parent POM

       -k --keep-pom-version: keep the original version of the POM but

              convert all other versions in dependencies and plugins.  If there  is  a  parent  POM,  keeps  its
              version except when the parent is already registered in the Maven repository

       -e<version>, --set-version=<version>: set the version for the POM,

              do not use the version declared in the POM file.

       -r<rules> --rules=<rules>: path to the file containing the

              rules to apply when cleaning the POM.  Optional, the default location is debian/maven.rules

       -R<rule>, --extra-rule=<rule>: extra rule to apply when cleaning the POM

              May occur multiple times, instead of or in addition to -r

       -u<rules> --published-rules=<rules>: path to the file containing the

              extra  rules  to  publish  in  the  property  debian.mavenRules in the cleaned POM.  Optional, the
              default location is debian/maven.publishedRules

       -U<rule>, --extra-published-rule=<rule>: extra rule to publish

              May occur multiple times, instead of or in addition to -u

       -i<rules> --ignore-rules=<rules>: path to the file containing the

              rules used to remove certain dependencies from the cleaned POM Optional, the default  location  is
              debian/maven.ignoreRules

       -I<rule>, --extra-ignore-rule=<rule>: extra rule used to remove dependencies

              from the transformed POM May occur multiple times, instead of or in addition to -i

       -c<rules> --clean-ignore-rules=<rules>: path to the file containing the

              rules  use  to  remove  certain dependencies from the cleaned POM, in addition to the ignore rules
              specified previously. This is useful in situations such as when the Maven  clean  target  requires
              more   dependencies   or  plugins  to  ignore  than  the  build  target.   All  rules  defined  in
              clean-ignore-rules will be added to the existing rules in  ignore-rules.   Optional,  the  default
              location is debian/maven.cleanIgnoreRules

       -s --no-rules: don't apply any rules for converting versions,

              do not even convert versions to the default 'debian' version

       --no-publish-used-rule: don't publish the rule used to transform

              a POM's own attributes in debian.mavenRules

       --keep-elements=<elem1,elem2>: keep the elements listed here

              even   if   they   are   normally   removed   by   the   clean   operation.    Such  elements  are
              build,reports,reporting,prerequisites,profiles.

       -m<repo root>--maven-repo=<repo root>: location of the Maven repository,

              used to force the versions of the Maven plugins used in the current POM  file  with  the  versions
              found in the repository

       -v --verbose: show more information while running

       -n --no-act: don't actually do anything, just print the results

   Description:
              Cleans a Maven POM and prepare it for inclusion in the Debian repository for Maven.

              The  POM  will  be  normalised, and its parent tag removed if the option --no-parent is given. The
              version will be replaced by 'debian', unless a special rule  applies  (see  below  the  discussion
              about rules).  Build, profiles and other build time only sections of the POM will be stripped.

              If  versions are given for a dependency, this version will be replaced by the 'debian' version, or
              a rule can be given to use a custom version

              You can modify those defaults with the help of the rules file. This file should contain the  lines
              with  the  format:  <groupId>  [artifactId]  [type]  [version] [classifier] [scope] where groupId,
              artifactId, type, version, classifier and scope can be the explicit attribute  to  match,  or  can
              contain a wildcard (*) for generic matches.

              Each  one  of  those  elements  can also be a replace rule, of the form s/<regex>/<replace>/ where
              regex is a regular expression, and replace is the replacement. Substitution groups $1 $2... can be
              used in the replacement if capture groups () have been used in the regex.

              The  first element is mandatory (groupId), but you can ignore the elements on the right hand side.
              If the scope is missing, then any scope is matched and left unchanged.  If the version is missing,
              then any version will be replaced with 'debian'.  If type is missing, then any type is matched and
              left unchanged.  If artifactId is missing, then any artifactId is matched and left unchanged.

              You can also have comments in this file, it should be a line starting with #

       Example of a rules file:

              s/commons-(.*)/org.apache.commons.commons$1/ org.itext * * s/1\..*/1.x/ org.itext * * s/2\..*/2.x/
              #  use  the alpha version of plexus-container-default org.codehaus.plexus plexus-container-default
              jar s/1\.0-alpha.*/1.0-alpha/

              This rules  file  does  the  following:  -  all  groupIds  starting  with  commons-  will  have  -
              org.apache.commons.  prefixed  to them - any artifact in the org.itext group with a version number
              starting

              with 1. will use the 1.x version

              - any artifact in the org.itext group with a version number starting

              with 2. will use the 2.x version

              - the jar with groupId=org.codehaus.plexus and

              artifactId=plexus-container-default and a version starting with 1.0-alpha- will use the  1.0-alpha
              version

              The  default rule (* * * s/.*/debian/ *) replaces any version number with the 'debian' version and
              always applies last if there was no other matches.  Another default rule (* *  maven-plugin  *  *)
              keep the version for all plugins as the plugin mechanism requires a version in Maven.

              Any  rules  given  on  the  command  line  (using  -R/--extra-rule,  -U/--extra-published-rule  or
              -I/--extra-ignore-rule) are applied in the order given, in between the rules given  in  the  rules
              file (if any) and the default rules.

       See also: mh_installpom(1), mh_installpoms(1)