Using Executable Binary Dependencies Instead of Local Executables
Instead of invoking a locally installed binary executable (identified by executable
), a dependency (identified by executableDependency
) can directly get executed instead. This particularly is useful when the dependency is an executable binary like .exe
or .bat
file produced by a different Maven project which got deployed into a repository. The binary gets pulled to the local repository and is getting executed right there without the need to know its actual file name or location on disk: Just the GA coordinates (groupId
, artifactId
) are needed. Hence the executable
parameter has to be omitted in favor of the executableDependency
parameter.
There are two ways of using executable binary dependencies: Project dependencies and plugin dependencies. Currently the exec
goal only supports plugin dependencies.
Plugin Dependencies
Plugin Dependencies are referenced from within the plugin configuration.
pom.xml
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.5.0</version>
...
<configuration>
<executableDependency>
<!-- REFERENCES plugin dependency, see declaration below -->
<groupId>your-group</groupId>
<artifactId>your-artifact</artifactId>
</executableDependency>
</configuration>
<dependencies>
<dependency>
<!-- DECLARES plugin dependency, see reference above -->
<groupId>your-group</groupId>
<artifactId>your-artifact</artifactId>
<type>exe</type>
<version>your-version</version>
</dependency>
</dependencies>
...
</plugin>
</plugins>
</build>
...
</project>