Cm:
POM
<groupId>so</groupId> <artifactId>multiple-values-maven-plugin</artifactId> <version>1.0</version> <packaging>maven-plugin</packaging> <dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>3.3.3</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.4</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.4</version> </plugin> </plugins> </build>
Mojo
package so; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import org.apache.maven.model.FileSet; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @Mojo( name = "values", requiresProject = false ) public class MultipleValuesMojo extends AbstractMojo { @Parameter( property = "array", required = true ) private String[] array; @Parameter( property = "list", required = true ) private List<String> list; @Parameter( property = "set", required = true ) private String[] setElements; private Set<String> set; @Parameter( property = "map", required = true ) private String[] mapEntries; private Map<String, String> map; @Parameter( property = "includes", required = true ) private List<String> includes; @Parameter( property = "excludes", required = true ) private List<String> excludes; @Override public void execute() throws MojoExecutionException { getLog().info( "Array: " + Arrays.toString( array ) ); getLog().info( " List: " + list.toString() ); set = Arrays.stream( setElements ).collect( Collectors.toSet() );
Run
mvn so:multiple-value-maven-plugin:values -Darray=VALUE_1,VALUE_2,VALUE_3 -Dlist=VALUE_1,VALUE_2,VALUE_3 -Dset=VALUE_1,VALUE_2,VALUE_3 -Dmap=KEY_1=VALUE_1,KEY_2=VALUE_2,KEY_3=VALUE_3 -Dincludes=/,/usr/* -Dexcludes=/root,/tmp [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building multiple-values-maven-plugin 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- multiple-values-maven-plugin:1.0:values (default-cli) @ multiple-values-maven-plugin --- [INFO] Array: [VALUE_1, VALUE_2, VALUE_3] [INFO] List: [VALUE_1, VALUE_2, VALUE_3] [INFO] Set: [VALUE_3, VALUE_2, VALUE_1] [INFO] Map: {KEY_1=VALUE_1, KEY_3=VALUE_3, KEY_2=VALUE_2} [INFO] Includes: [/, /usr/*] [INFO] Excludes: [/root, /tmp] [INFO] FileSet: FileSet {directory: null, PatternSet [includes: {/, /usr/*}, excludes: {/root, /tmp}]} [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.671 s [INFO] Finished at: 2015-07-25T21:44:09+02:00 [INFO] Final Memory: 11M/115M [INFO] ------------------------------------------------------------------------
source share