<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
<version>2.7.1</version>
</dependency>
</dependencies>
import org.codehaus.plexus.components.io.file.AbstractPlexusIoResourceCollection;
import org.codehaus.plexus.components.io.file.PlexusIoResource;
import org.codehaus.plexus.components.io.file.PlexusIoResourceCollectionException;
import java.io.File;
import java.util.Iterator;
public class CustomFileCollection extends AbstractPlexusIoResourceCollection {
private File baseDir;
public void setBaseDir(File baseDir) {
this.baseDir = baseDir;
}
@Override
public String[] getExcludes() {
return new String[0];
}
@Override
public String[] getIncludes() {
return new String[0];
}
@Override
public File getBaseDir() {
return baseDir;
}
@Override
public void setIncludes(String[] includes) {
}
@Override
public void setExcludes(String[] excludes) {
}
@Override
public Iterator<PlexusIoResource> getResources() throws PlexusIoResourceCollectionException {
return null;
}
}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-custom-files</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/custom-output</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.txt</include>
</includes>
</resource>
<!-- Add your custom resource collection configuration -->
<resource>
<directory>path/to/custom/directory</directory>
<targetPath>custom</targetPath>
<implementation>com.example.CustomFileCollection</implementation>
<setBaseDir>${basedir}/path/to/base/dir</setBaseDir>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>