public File createArchive()

in src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java [123:190]


    public File createArchive(
            final Assembly assembly,
            final String fullName,
            final String format,
            final AssemblerConfigurationSource configSource,
            FileTime outputTimestamp)
            throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException {
        validate(assembly);

        String filename = fullName;
        if (!configSource.isIgnoreDirFormatExtensions() || !format.startsWith("dir")) {
            filename += "." + format;
        }

        AssemblyFileUtils.verifyTempDirectoryAvailability(configSource.getTemporaryRootDirectory());

        final File outputDirectory = configSource.getOutputDirectory();

        final File destFile = new File(outputDirectory, filename);

        try {
            final String finalName = configSource.getFinalName();
            final String specifiedBasedir = assembly.getBaseDirectory();

            String basedir = finalName;

            if (specifiedBasedir != null) {
                basedir = AssemblyFormatUtils.getOutputDirectory(
                        specifiedBasedir,
                        finalName,
                        configSource,
                        AssemblyFormatUtils.moduleProjectInterpolator(configSource.getProject()),
                        AssemblyFormatUtils.artifactProjectInterpolator(null));
            }

            final List<ContainerDescriptorHandler> containerHandlers =
                    selectContainerDescriptorHandlers(assembly.getContainerDescriptorHandlers(), configSource);

            final Archiver archiver = createArchiver(
                    format,
                    assembly.isIncludeBaseDirectory(),
                    basedir,
                    configSource,
                    containerHandlers,
                    outputTimestamp);

            archiver.setDestFile(destFile);

            for (AssemblyArchiverPhase phase : sortedPhases()) {
                phase.execute(assembly, archiver, configSource);
            }

            archiver.createArchive();
        } catch (final ArchiverException | IOException e) {
            throw new ArchiveCreationException(
                    "Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e);
        } catch (final NoSuchArchiverException e) {
            throw new ArchiveCreationException(
                    "Unable to obtain archiver for extension '" + format + "', for assembly: '" + assembly.getId()
                            + "'",
                    e);
        } catch (final DependencyResolutionException e) {
            throw new ArchiveCreationException(
                    "Unable to resolve dependencies for assembly '" + assembly.getId() + "'", e);
        }

        return destFile;
    }