private void excludeDockerfile(DefaultFileSet fileSet, File dockerFile) { ArrayList<String> excludes = fileSet.getExcludes() != null ? new ArrayList<>(Arrays.asList(fileSet.getExcludes())) : new ArrayList<String>(); excludes.add(dockerFile.getName()); fileSet.setExcludes(excludes.toArray(new String[0])); }
private void addDockerIncludes(DefaultFileSet fileSet) throws IOException { File directory = fileSet.getDirectory(); File dockerInclude = new File(directory, DOCKER_INCLUDE); if (dockerInclude.exists()) { ArrayList<String> includes = new ArrayList<>(Arrays.asList(FileUtils.fileReadArray(dockerInclude))); fileSet.setIncludes(includes.toArray(new String[0])); } }
/** * Adds a directory to a {@link JarArchiver} with a directory prefix. * * @param jarArchiver * @param directory * The directory to add. * @param prefix * An optional prefix for where in the Jar file the directory's contents should go. */ protected void addDirectory( JarArchiver jarArchiver, File directory, String prefix ) { if ( directory != null && directory.exists() ) { final DefaultFileSet fileSet = new DefaultFileSet(); fileSet.setPrefix( endWithSlash( prefix ) ); fileSet.setDirectory( directory ); jarArchiver.addFileSet( fileSet ); } }
/** * Adds a directory to a {@link JarArchiver} with a directory prefix. * * @param jarArchiver * @param directory The directory to add. * @param prefix An optional prefix for where in the Jar file the directory's contents should go. */ protected void addDirectory( JarArchiver jarArchiver, File directory, String prefix ) { if ( directory != null && directory.exists() ) { final DefaultFileSet fileSet = new DefaultFileSet(); fileSet.setPrefix( endWithSlash( prefix ) ); fileSet.setDirectory( directory ); // XXX: trying to avoid duplicated sources fileSet.setExcludes( new String[] { "**/R.java", "**/BuildConfig.java" } ); jarArchiver.addFileSet( fileSet ); getLog().debug( "Added files from " + directory ); } }
/** * Adds a directory to a {@link JarArchiver} with a directory prefix. * * @param zipArchiver ZipArchiver to use to archive the file. * @param directory The directory to add. * @param prefix An optional prefix for where in the Jar file the directory's contents should go. * @param includeEmptyFolders Whether to include an entry for empty folder in the archive. */ protected void addDirectory( ZipArchiver zipArchiver, File directory, String prefix, boolean includeEmptyFolders ) { if ( directory != null && directory.exists() ) { final DefaultFileSet fileSet = new DefaultFileSet(); fileSet.setPrefix( endWithSlash( prefix ) ); fileSet.setDirectory( directory ); fileSet.setIncludingEmptyDirectories( includeEmptyFolders ); zipArchiver.addFileSet( fileSet ); getLog().debug( "Added files from " + directory ); } }
private TarArchiver createBuildArchiver(File outputDir, File archive, AssemblyConfiguration assemblyConfig) throws NoSuchArchiverException { TarArchiver archiver = (TarArchiver) archiverManager.getArchiver("tar"); archiver.setLongfile(TarLongFileMode.posix); AssemblyMode mode = assemblyConfig != null ? assemblyConfig.getMode() : null; if (mode != null && mode.isArchive()) { DefaultArchivedFileSet archiveSet = DefaultArchivedFileSet.archivedFileSet(new File(outputDir, assemblyConfig.getName() + "." + mode.getExtension())); archiveSet.setPrefix(assemblyConfig.getName() + "/"); archiveSet.setIncludingEmptyDirectories(true); archiveSet.setUsingDefaultExcludes(false); archiver.addArchivedFileSet(archiveSet); } else { DefaultFileSet fileSet = DefaultFileSet.fileSet(outputDir); fileSet.setUsingDefaultExcludes(false); archiver.addFileSet(fileSet); } archiver.setDestFile(archive); return archiver; }
private void addDockerExcludes(DefaultFileSet fileSet, MojoParameters params) throws IOException { File directory = fileSet.getDirectory(); List<String> excludes = new ArrayList<>(); // Output directory will be always excluded excludes.add(params.getOutputDirectory() + "/**"); for (String file : new String[] { DOCKER_EXCLUDE, DOCKER_IGNORE } ) { File dockerIgnore = new File(directory, file); if (dockerIgnore.exists()) { excludes.addAll(Arrays.asList(FileUtils.fileReadArray(dockerIgnore))); excludes.add(DOCKER_IGNORE); } } fileSet.setExcludes(excludes.toArray(new String[0])); }
public static DefaultFileSet fileSet( File directory ) { final DefaultFileSet defaultFileSet = new DefaultFileSet( directory ); return defaultFileSet; }
@Override public TarArchiver customize(TarArchiver archiver) throws IOException { DefaultFileSet fileSet = DefaultFileSet.fileSet(dockerFile.getParentFile()); addDockerIncludesExcludesIfPresent(fileSet, params); // Exclude non-interpolated dockerfile from source tree // Interpolated Dockerfile is already added as it was created into the output directory when // using dir dir mode excludeDockerfile(fileSet, dockerFile); // If the content is added as archive, then we need to add the Dockerfile from the builddir // directly to docker.tar (as the output builddir is not picked up in archive mode) if (isArchive(assemblyConfig)) { String name = dockerFile.getName(); archiver.addFile(new File(buildDirs.getOutputDirectory(), name), name); } archiver.addFileSet(fileSet); return archiver; } });
public T includeEmptyDirs( boolean includeEmptyDirectories ) { setIncludingEmptyDirectories( includeEmptyDirectories ); return (T) this; }
public T include( String[] includes ) { setIncludes( includes ); return (T) this; }
public T exclude( String[] excludes ) { setExcludes( excludes ); return (T) this; }
public T prefixed( String prefix ) { setPrefix( prefix ); return (T) this; }
/** * Queries, whether the given source is up-to-date relative to * the given destination. */ public static boolean isUptodate( PlexusIoResource source, File destination ) { return isUptodate( source, destination.lastModified() ); }
/** * Adds a directory to a {@link JarArchiver} with a directory prefix. * * @param jarArchiver * @param directory * The directory to add. * @param prefix * An optional prefix for where in the Jar file the directory's contents should go. */ protected void addDirectory( JarArchiver jarArchiver, File directory, String prefix ) { if ( directory != null && directory.exists() ) { final DefaultFileSet fileSet = new DefaultFileSet(); fileSet.setPrefix( endWithSlash( prefix ) ); fileSet.setDirectory( directory ); jarArchiver.addFileSet( fileSet ); } }
private File createChangedFilesTarBall(File archive, File archiveDir) throws MojoExecutionException { try { TarArchiver archiver = (TarArchiver) archiverManager.getArchiver("tar"); archiver.setLongfile(TarLongFileMode.posix); archiver.addFileSet(DefaultFileSet.fileSet(archiveDir)); archiver.setDestFile(archive); archiver.createArchive(); return archive; } catch (NoSuchArchiverException e) { throw new MojoExecutionException("No archiver for type 'tar' found", e); } catch (IOException e) { throw new MojoExecutionException("Cannot create archive " + archive, e); } catch (RuntimeException e) { e.printStackTrace(); throw e; } }
/** * Adds a Java Resources directory (typically "src/main/resources") to a {@link JarArchiver}. * * @param jarArchiver * @param javaResource * The Java resource to add. */ protected void addJavaResource( JarArchiver jarArchiver, Resource javaResource ) { if ( javaResource != null ) { final File javaResourceDirectory = new File( javaResource.getDirectory() ); if ( javaResourceDirectory.exists() ) { final DefaultFileSet javaResourceFileSet = new DefaultFileSet(); javaResourceFileSet.setDirectory( javaResourceDirectory ); javaResourceFileSet.setPrefix( endWithSlash( "src/main/resources" ) ); jarArchiver.addFileSet( javaResourceFileSet ); } } } }
/** * Adds a Java Resources directory (typically "src/main/resources") to a {@link JarArchiver}. * * @param jarArchiver * @param javaResource * The Java resource to add. */ protected void addJavaResource( JarArchiver jarArchiver, Resource javaResource ) { if ( javaResource != null ) { final File javaResourceDirectory = new File( javaResource.getDirectory() ); if ( javaResourceDirectory.exists() ) { final DefaultFileSet javaResourceFileSet = new DefaultFileSet(); javaResourceFileSet.setDirectory( javaResourceDirectory ); javaResourceFileSet.setPrefix( endWithSlash( "src/main/resources" ) ); jarArchiver.addFileSet( javaResourceFileSet ); } } } }
/** * Adds a Java Resources directory (typically "src/main/resources") to a {@link JarArchiver}. * * @param jarArchiver * @param javaResource The Java resource to add. * @param prefix An optional prefix for where in the Jar file the directory's contents should go. * @throws IOException in case the resource path can not be resolved */ protected void addJavaResource( JarArchiver jarArchiver, Resource javaResource, String prefix ) throws IOException { if ( javaResource != null ) { final File javaResourceDirectory = new File( javaResource.getDirectory() ); if ( javaResourceDirectory.exists() ) { final String resourcePath = javaResourceDirectory.getCanonicalPath(); final String apkLibUnpackBasePath = getUnpackedLibsDirectory().getCanonicalPath(); // Don't include our dependencies' resource dirs. if ( ! resourcePath.startsWith( apkLibUnpackBasePath ) ) { final DefaultFileSet javaResourceFileSet = new DefaultFileSet(); javaResourceFileSet.setDirectory( javaResourceDirectory ); javaResourceFileSet.setPrefix( endWithSlash( prefix ) ); jarArchiver.addFileSet( javaResourceFileSet ); } } } }