Translation(s): English

Maven

Maven is a framework with several different plugins and mainly used as a project management tool. Maven uses conventions. Every Maven project looks very similar since source and compiled code is located in the same places. Maven is declarative and all information are stored in pom.xml files.

mh_make

The mh_make helper tool is located in the maven-debian-helper package. If executed in the root directory of the upstream sources, it is capable of producing a complete debian directory.The idea is to almost automate Maven packaging. Currently the tool has some flaws. Build-dependencies must be installed on the system before mh_make is run. It happens quite frequently that the tool fails to produce a complete debian directory.

It is recommended to use it but extra work is required to finalize the Debian package. In most cases it makes sense to model a new package after already existing ones.

Blog article about how to use mh_make video tutorial in French

libtwelvemonkeys-java

libtwelvemonkeys-java is a rather simple Maven-based Java library. The most important Java specific files are libtwelvemonkeys-java.poms, maven.rules, maven.ignoreRules and maven.properties.

libtwelvemonkeys-java.poms:

# List of POM files for the package
# Format of this file is:
# <path to pom file> [option]*
# where option can be:
#   --ignore: ignore this POM and its artifact if any
#   --ignore-pom: don't install the POM. To use on POM files that are created
#     temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
#   --no-parent: remove the <parent> tag from the POM
#   --package=<package>: an alternative package to use when installing this POM
#      and its artifact
#   : to indicate that the original version of the POM is the same as the upstream part
#      of the version for the package.
#   --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
#      during a clean operation with mh_cleanpom or mh_installpom
#   --artifact=<path>: path to the build artifact associated with this POM,
#      it will be installed when using the command mh_install. [mh_install]
#   --java-lib: install the jar into /usr/share/java to comply with Debian
#      packaging guidelines
#   --usj-name=<name>: name to use when installing the library in /usr/share/java
#   --usj-version=<version>: version to use when installing the library in /usr/share/java
#   --no-usj-versionless: don't install the versionless link in /usr/share/java
#   --dest-jar=<path>: the destination for the real jar.
#     It will be installed with mh_install. [mh_install]
#   --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
#   --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
#     Empty by default. [mh_install]
#
pom.xml --no-parent
common/pom.xml
common/common-lang/pom.xml
common/common-io/pom.xml
common/common-image/pom.xml
servlet/pom.xml
imageio/pom.xml
imageio/imageio-core/pom.xml
imageio/imageio-metadata/pom.xml
imageio/imageio-clippath/pom.xml
imageio/imageio-bmp/pom.xml
imageio/imageio-hdr/pom.xml
imageio/imageio-icns/pom.xml
imageio/imageio-iff/pom.xml
imageio/imageio-jpeg/pom.xml
imageio/imageio-pcx/pom.xml
imageio/imageio-pdf/pom.xml --ignore
imageio/imageio-pict/pom.xml
imageio/imageio-pnm/pom.xml
imageio/imageio-psd/pom.xml
imageio/imageio-sgi/pom.xml
imageio/imageio-tga/pom.xml
imageio/imageio-thumbsdb/pom.xml
imageio/imageio-tiff/pom.xml
imageio/imageio-batik/pom.xml
imageio/imageio-reference/pom.xml --ignore
contrib/pom.xml
bom/pom.xml

The debian/*.poms file includes every pom file in our source package. Here you can decide whether you want to build a certain module or ignore it. You can manipulate certain aspects of the build process. For instance you change the final name of the resulting jar file with the --usj-name option. The --java-lib install Maven artifacts also into /usr/share/java which is useful for Ant projects.