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:exec
Task 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 havecommand
configured, and optionally can havedirectory
which sets the directory in which the command gets executedasync
- if task should be executed in the background thread. By defaultfalse
wait
- if task should wait for all async tasks started before