Controlling the Contents of an Assembly
In theory, id
and format
are the only absolute requirements for a valid assembly
descriptor; however, many assembly archivers will fail if they do not
have at least one file to include in the output archive. The task of
defining the files to be included in the assembly is handled by the
five main sections of the assembly descriptor:
files
, fileSets
,
dependencySets
, repositories
,
and moduleSets
. To explore these sections most
effectively, weâll start by discussing the most elemental section:
files
. Then, weâll move onto the two most commonly
used sections, fileSets
and
dependencySets
. Once you understand the workings of
fileSets
and dependencySets
,
itâs easier to understand repositories
and
moduleSets
.
Files Section
The files
section is the simplest part of
the assembly descriptor. It is designed for files that
have a definite location relative to your projectâs directory. Using
this section, you have absolute control over the exact set of files
that are included in your assembly, exactly what they are named, and
where they will reside in the archive. See Example 12-6.
Example 12-6. Including a JAR file in an assembly using files
<assembly> ... <files> <file> <source>target/my-app-1.0.jar</source> <outputDirectory>lib</outputDirectory> <destName>my-app.jar</destName> <fileMode>0644</fileMode> </file> </files> ... </assembly>
Assuming you were building a project called
my-app
with a version of 1.0
,
Example 12-6 would include your projectâs ...
Get Maven: The Definitive Guide now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.