Paseq Maven Plugin executes series of commands or Maven goals sequentially or in parallel.
Plugin has to be configured in build/plugins section of pom.xml:
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>com.maciejwalkowiak.paseq</groupId>
<artifactId>paseq-maven-plugin</artifactId>
<version>0.1.1</version>
<configuration>
<tasks>
<!-- runs docker-compose from 'etc' directory relative to pom.xml -->
<task>
<exec>
<directory>etc</directory>
<command>docker-compose up -d --wait</command>
</exec>
</task>
<!-- runs npx in a background process -->
<task>
<async>true</async>
<exec>
<command>npx run develop</command>
</exec>
</task>
<!-- runs spring-boot:run after previous sync task finishes -->
<task>
<goals>spring-boot:run</goals>
</task>
</tasks>
</configuration>
</plugin>
<!-- ... -->
</plugins>
</build>Then the series of commands can be executed with:
$ mvn paseq:execTask can have either goals or exec configured:
goals- Maven goals or lifecycle phases. Can be either a list or comma-separated listexec- executable run in a separate process. Must havecommandconfigured, and optionally can havedirectorywhich sets the directory in which the command gets executedasync- if task should be executed in the background thread. By defaultfalsewait- if task should wait for all async tasks started before
