in src/main/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhase.java [318:357]
void addModuleArtifact(
final Artifact artifact,
final MavenProject project,
final Archiver archiver,
final AssemblerConfigurationSource configSource,
final ModuleBinaries binaries)
throws ArchiveCreationException, AssemblyFormattingException {
if (artifact.getFile() == null) {
throw new ArchiveCreationException(
"Artifact: " + artifact.getId() + " (included by module) does not have an artifact with a file. "
+ "Please ensure the package phase is run before the assembly is generated.");
}
final AddArtifactTask task = new AddArtifactTask(artifact, null);
task.setFileNameMapping(binaries.getOutputFileNameMapping());
task.setOutputDirectory(binaries.getOutputDirectory());
task.setProject(project);
task.setModuleProject(project);
task.setModuleArtifact(artifact);
final int dirMode = TypeConversionUtils.modeToInt(binaries.getDirectoryMode(), LOGGER);
if (dirMode != -1) {
task.setDirectoryMode(dirMode);
}
final int fileMode = TypeConversionUtils.modeToInt(binaries.getFileMode(), LOGGER);
if (fileMode != -1) {
task.setFileMode(fileMode);
}
task.setUnpack(binaries.isUnpack());
if (binaries.isUnpack() && binaries.getUnpackOptions() != null) {
task.setIncludes(binaries.getUnpackOptions().getIncludes());
task.setExcludes(binaries.getUnpackOptions().getExcludes());
}
task.execute(archiver, configSource);
}