Search in sources :

Example 1 with Glob

use of org.jreleaser.model.Glob in project jreleaser by jreleaser.

the class Artifacts method resolveFiles.

public static Set<Artifact> resolveFiles(JReleaserContext context) throws JReleaserException {
    Files files = context.getModel().getFiles();
    Set<Artifact> paths = new LinkedHashSet<>();
    if (!files.isEnabled())
        return paths;
    if (files.arePathsResolved()) {
        return files.getPaths();
    }
    // resolve artifacts
    for (Artifact artifact : files.getArtifacts()) {
        if (!context.isPlatformSelected(artifact))
            continue;
        artifact.activate();
        artifact.getEffectivePath(context);
        paths.add(artifact);
    }
    // resolve globs
    for (Glob glob : files.getGlobs()) {
        for (Artifact artifact : glob.getResolvedArtifacts(context)) {
            if (!artifact.isActive())
                continue;
            paths.add(artifact);
        }
    }
    files.setPaths(Artifact.sortArtifacts(paths));
    return files.getPaths();
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Glob(org.jreleaser.model.Glob) Files(org.jreleaser.model.Files) Artifact(org.jreleaser.model.Artifact)

Example 2 with Glob

use of org.jreleaser.model.Glob in project jreleaser by jreleaser.

the class AbstractJavaAssemblerProcessor method copyFiles.

protected Set<Path> copyFiles(JReleaserContext context, Path destination) throws AssemblerProcessingException {
    Set<Path> paths = new LinkedHashSet<>();
    // resolve all first
    for (Glob glob : assembler.getFiles()) {
        glob.getResolvedArtifacts(context).stream().map(artifact -> artifact.getResolvedPath(context, assembler)).forEach(paths::add);
    }
    // copy all next
    try {
        Files.createDirectories(destination);
        for (Path path : paths) {
            context.getLogger().debug(RB.$("assembler.copying"), path.getFileName());
            Files.copy(path, destination.resolve(path.getFileName()), REPLACE_EXISTING);
        }
    } catch (IOException e) {
        throw new AssemblerProcessingException(RB.$("ERROR_assembler_copying_files"), e);
    }
    return paths;
}
Also used : Path(java.nio.file.Path) LinkedHashSet(java.util.LinkedHashSet) Constants(org.jreleaser.util.Constants) JavaAssembler(org.jreleaser.model.JavaAssembler) Files(java.nio.file.Files) MustacheUtils.applyTemplate(org.jreleaser.util.MustacheUtils.applyTemplate) Set(java.util.Set) IOException(java.io.IOException) Reader(java.io.Reader) Glob(org.jreleaser.model.Glob) Project(org.jreleaser.model.Project) TemplateUtils.resolveAndMergeTemplates(org.jreleaser.templates.TemplateUtils.resolveAndMergeTemplates) Map(java.util.Map) JReleaserContext(org.jreleaser.model.JReleaserContext) RB(org.jreleaser.bundle.RB) Path(java.nio.file.Path) REPLACE_EXISTING(java.nio.file.StandardCopyOption.REPLACE_EXISTING) AssemblerProcessingException(org.jreleaser.model.assembler.spi.AssemblerProcessingException) LinkedHashSet(java.util.LinkedHashSet) AssemblerProcessingException(org.jreleaser.model.assembler.spi.AssemblerProcessingException) Glob(org.jreleaser.model.Glob) IOException(java.io.IOException)

Example 3 with Glob

use of org.jreleaser.model.Glob in project jreleaser by jreleaser.

the class AssemblerUtils method copyJars.

public static Set<Path> copyJars(JReleaserContext context, JavaAssembler assembler, Path jarsDirectory, String platform) throws AssemblerProcessingException {
    Set<Path> paths = new LinkedHashSet<>();
    // resolve all first
    if (isBlank(platform)) {
        paths.add(assembler.getMainJar().getEffectivePath(context, assembler));
    }
    for (Glob glob : assembler.getJars()) {
        if ((isBlank(platform) && isBlank(glob.getPlatform())) || (isNotBlank(platform) && PlatformUtils.isCompatible(platform, glob.getPlatform()))) {
            glob.getResolvedArtifacts(context).stream().map(artifact -> artifact.getResolvedPath(context, assembler)).forEach(paths::add);
        }
    }
    // copy all next
    try {
        Files.createDirectories(jarsDirectory);
        for (Path path : paths) {
            context.getLogger().debug(RB.$("assembler.copying"), path.getFileName());
            Files.copy(path, jarsDirectory.resolve(path.getFileName()), REPLACE_EXISTING);
        }
    } catch (IOException e) {
        throw new AssemblerProcessingException(RB.$("ERROR_assembler_copying_jars"), e);
    }
    return paths;
}
Also used : Path(java.nio.file.Path) LinkedHashSet(java.util.LinkedHashSet) JavaAssembler(org.jreleaser.model.JavaAssembler) Properties(java.util.Properties) Files(java.nio.file.Files) Set(java.util.Set) StringUtils.isBlank(org.jreleaser.util.StringUtils.isBlank) IOException(java.io.IOException) PlatformUtils(org.jreleaser.util.PlatformUtils) File(java.io.File) StringUtils.isNotBlank(org.jreleaser.util.StringUtils.isNotBlank) Glob(org.jreleaser.model.Glob) Paths(java.nio.file.Paths) JReleaserContext(org.jreleaser.model.JReleaserContext) RB(org.jreleaser.bundle.RB) Path(java.nio.file.Path) REPLACE_EXISTING(java.nio.file.StandardCopyOption.REPLACE_EXISTING) AssemblerProcessingException(org.jreleaser.model.assembler.spi.AssemblerProcessingException) LinkedHashSet(java.util.LinkedHashSet) AssemblerProcessingException(org.jreleaser.model.assembler.spi.AssemblerProcessingException) Glob(org.jreleaser.model.Glob) IOException(java.io.IOException)

Aggregations

LinkedHashSet (java.util.LinkedHashSet)3 Glob (org.jreleaser.model.Glob)3 IOException (java.io.IOException)2 Files (java.nio.file.Files)2 Path (java.nio.file.Path)2 REPLACE_EXISTING (java.nio.file.StandardCopyOption.REPLACE_EXISTING)2 Set (java.util.Set)2 RB (org.jreleaser.bundle.RB)2 JReleaserContext (org.jreleaser.model.JReleaserContext)2 JavaAssembler (org.jreleaser.model.JavaAssembler)2 AssemblerProcessingException (org.jreleaser.model.assembler.spi.AssemblerProcessingException)2 File (java.io.File)1 Reader (java.io.Reader)1 Paths (java.nio.file.Paths)1 Map (java.util.Map)1 Properties (java.util.Properties)1 Artifact (org.jreleaser.model.Artifact)1 Files (org.jreleaser.model.Files)1 Project (org.jreleaser.model.Project)1 TemplateUtils.resolveAndMergeTemplates (org.jreleaser.templates.TemplateUtils.resolveAndMergeTemplates)1